Great! Thank you very much for the interest and help offering!
Well… What I need is the 3D model which is exportable to COLLADA format and has the required set of interface elements. The higher quality the better of course. But since it is a hobby project, just feel free to invest the amount of efforts you think is appropriate. Maybe you can get better feeling of what can be done by taking a look at that:
blender-3d.ru/forum/index.php/topic,171.0.html
blender-3d.ru/forum/index.php/topic,171.15.html
(this is a Blender forum in Russian where I posted the similar request, but you can just take a look on images in this thread).
In addition, if it would be helpful, I can provide my currently used .blend file.
Most examples mentioned above are oriented towards the car cockpit. However, in addition to the car, I am also have a small tank (as pictured here: veter-project.blogspot.com) and planning to develop a quad-copter. So what might be interesting is to design the dashboard which is less specific for the car but has more abstract sci-fi robot-like interface. For example, there should not necessarily be the steering wheel in classical sense. Instead some indication of the direction would be enough. For example something like light stripe which is highlighted from the middle to the left or right depending on the driving direction.
Since there will be more then one possible model of the cockpit, I am currently working on software part to support “skins”. So depending on which type of vehicle is currently controlled and user preferences, it would be possible to select different skins for the cockpit.
Just a few words about the interaction between the 3D model of the cockpit and my application. To “animate” the model the program is searching for the objects with well known names in the scene and modify them. For example, to display the video frame, I am looking for the plane with the name “video_plane” and then applying the video frame as a texture to this frame. Similar is for the steering - I am searching for the object called “steering_wheel” and then rotating it depending on the user input.
Originally, I was thinking that it would be great to get just one more or less reasonable dashboard, so I did not implement a lot of flexibility here. That was also the reason for choosing Wavefrong .obj file format. However, since I receive more then one response to my call for contribution the idea of skins was born. I am currently in process of moving to COLLADA file format which enables much more generic integration between 3D models and the program.
There are parts which are always present and those which are optional. The always present parts are:
- Plane where video from on-board camera is displayed (as a texture).
- Moving direction indication (I am intentionally not calling it steering wheel here).
- Speed indication (also do not want to call it tachometer since it could be also just a row of light stripes or whatever else).
- Plane for messages. This is the placeholder (and background) to indicate where I should place the text messages. Text is placed slightly on top of this plane and string length’s are restricted to fit into the plane width and height.
Optional parts are queried during the initialization and depending on what is actually installed on the vehicle could be:
- barometer, thermometer, sonar, compass, battery power metter,
- GPS - requires square place to show the map with current location (I am using openstreetmap.org for it).
- orientation in space (gyros+accelerometers) - here I was thinking about small, schematic representation of the controlled vehicle which will be rotated around all three axis to represent the current spatial orientation of the vehicle.
So probably that there should be some free space on the screen (dashboard) where available elements could be dynamically added as necessary. The space should be enough to have the complete set of sensors mentioned above.
When I am thinking about the interface I am always getting pictures similar to those from movies about hackers or robots. There are panels with permanently scrolled unreadable text, some led-like indicator stripes and of course video
. In general, I think the Descent-like interface would be great. Another interesting example of such unconventional interface I know is XBMC PC media center xbmc.org/skins/ .
No pressure here. Just go with your own pace. I am working on this project mainly over the nights and weekends and unfortunately it does not progress as fast as I would like it to be. So again - absolutely no time pressure here.
That’s always great to hear!
Thank you!
I know that there are more details need to be clarified, but this post is already quite long and I do not want to scary out the readers with even longer one. So please feel free to ask any remaining questions. I would be glad to clarify them.
P.S.
BTW, folks, does anybody know why I could not post any URLs here? If I try to mark the url using corresponding url button in the editor, the post gets rejected…