September 09, 2010, 02:11:47 PM
News: As promised, here is another update of the editor with improvements and bug fixes
Pages: [1]
Print
Author Topic: PID (position information display)  (Read 1248 times)
Tamarin
Full Member
***
Posts: 208


View Profile
« on: February 27, 2009, 06:34:39 PM »

I want to add objects in the editor and know exactly where they are. My idea is to have certain objects "fit" together not unlike lego. I'm working on a redesign of the ship with inter-changeable parts. Maybe a box which shows the objects location and the ability to give the object a new location numerically. It would also make it easier to line things up along a line or plane.
Logged
Jochen Stier
Administrator
Sr. Member
*****
Posts: 498


Founder/Programmer

jochen.stier@gmail.com
View Profile
« Reply #1 on: February 28, 2009, 02:43:41 PM »

Ok, I will put some thought into this. I have already been playing around with Geist3D objects (.3do), which encapsulates of whole model including textures, meshes, shaders, etc. I could add a little bit of logic where you can address objects by there name, i.e. "weaponsbay1". Once you have some models I will write the code to make it work. At least then I will know exactly what the requirements are.
Logged
Tamarin
Full Member
***
Posts: 208


View Profile
« Reply #2 on: February 28, 2009, 08:39:33 PM »

Quote
Once you have some models I will write the code to make it work

 Wink I know! I am working on a few things. I don't need this feature right away but I think it will be useful when we start assembling larger scenes.

Here is a similar numerical input display from blender, as an example. You can quickly and precisely translate objects in this manner. If your floor is z=0 then you can just type z=0 to set your object on the floor. If you wanted it 2m above the floor you just type z=2. It might also help to establish the scale of objects within Giest.



Logged
Jochen Stier
Administrator
Sr. Member
*****
Posts: 498


Founder/Programmer

jochen.stier@gmail.com
View Profile
« Reply #3 on: February 28, 2009, 11:24:54 PM »

Ok, I see what you are looking for. When you select a transform in the treeview, you can already see a similar input field at the bottom of the editor window. Although it is not working properly yet, you can enter values by hand, but that still needs some work. I have tried a different approach with Geist3d by using these 3D manipulators, i.e. the green box the surrounds the object. I have first seen this with the OpenInventor scene graph library years back. It is probably not as effective as the multiple windows you have in Blender, 3D Max or XSI, where each window snaps an object to one of the main axis, but the manipulators allow you to position objects wherever you currently are in the scene. It kind of reverses the concept; instead of positioning along an axis in each window you choose the axis by clicking on proper face of the manipulator. The advantage is that you are taking the coordinate system with you wherever you are. In these large environments that seemed the right way to go. I have also added a snap to grid function which seemed quite useful. So, when you design your system, think of a smallest unit by which you can position objects. Then you can define the grid to just snap things into place with the manipulator.

Ultimately we have two different problems here. The first is to design the model, let’s say a space ship and then import it into Geist3D and specify different locations where you can add weapons, cargo hold, life pod etc. The other problem is to then to allow a player to fill the place holders with whatever objects they choose. My plan is to program different classes of ships, for example, a frigate. All I need to know is how many different slots it has and what they are named. As the artist, you can then design the ship and position the slots wherever you want them to be. That happens in Geist3D using different transform nodes. But they have to be named properly. Then we export the model as a .3do file. The graphics engine will then simply know, because it’s of class frigate, that it has to look for x number of slots. We can then use Lua script to say, slot n has this object attached to it. This way, another game developer, who only knows Lua and the workings of the editor, can then use the 2D Gui widgets in Geist3D to build a store, or marketplace where you can purchase stuff for your frigate. It’s a thin balance between the Lua based functionality, which anyone should be able to do, and the actually hard coded stuff which only a developer can do. I am not quite sure how to separate these concerns, but it will be quite important to do it right….

Another reason to program the different classes right inside the engine is to have better control about the physical dynamics of the objects. Some classes of ships, like very large space station, will also have an inside area where you can walk around in. Although that has already been demonstrated with Eco Bora Delta, each station, or type of station, may need additional logic that just has to be programmed out in native code.

He Tamarin you are just around the corner. If you ever have some time, we can get together and do some brainstorming…


On another note, I just finished the multithreading code that will allow several threads to compute the planet surface at once. Right now I only had one thread doing it, but since I have a dual core processor, I knew that I could squeeze out more performance out of my system. I realize now that in the future, when we have true parallel processors on the CPU, it will be possible to create absolutely stunning planets with all the variations of our own planet. Unfortunately, it will be quite some time until enough people have such powerful computers before a game along those lines will become viable.
« Last Edit: February 28, 2009, 11:28:18 PM by Jochen Stier » Logged
Tamarin
Full Member
***
Posts: 208


View Profile
« Reply #4 on: March 01, 2009, 03:05:17 AM »

I think you are talking about this computer here.

http://www.nvidia.com/object/personal_supercomputing.html

Up to 960 cores, the processing power is measured in petaflops. Maybe we can all chip in and get one for a server Wink

I see that you have already figured out the technical details of a socket type ship so I will focus only on building one. I set up a contest for game art on blender artist forum to draw more attention to the project.
Logged
Tamarin
Full Member
***
Posts: 208


View Profile
« Reply #5 on: March 01, 2009, 07:47:57 PM »

That CUDA multi-threading looks pretty impressive the more I look at it. It looks like the Geforce series 8 and up all support it.
Logged
Jochen Stier
Administrator
Sr. Member
*****
Posts: 498


Founder/Programmer

jochen.stier@gmail.com
View Profile
« Reply #6 on: March 02, 2009, 07:11:49 PM »

I haven't looked at CUDA yet, but I heard good stuff about it. Right now, the app is still GPU bound and there is no room for any graphics unrelated computation. So far, GLSL does the trick for that. I am thinking of upgrading to an ATI 4870 soon. Hopefully, the ATI drivers are better now than the last time I tried one of their cards.
Logged
Tamarin
Full Member
***
Posts: 208


View Profile
« Reply #7 on: March 02, 2009, 10:21:51 PM »

There is a local guy selling a GTX 260 for $230 on used victoria. I was looking for a card upgrade and I offered him $200. He said he wanted to wait until his new card arrived, but that is a pretty sweet deal for $200. I settled on a 8800 GT for $100. I just plugged it in now and I'm downloading the drivers.

I just checked toms hardware and the gtx 260 is ranked just behind the 4870. Tough call, but I have always stuck with nvidia, plus one of the graphics programs I'm thinking of buying(for digital sculpting in voxels) can benefit hugely with the new CUDA gpu processing.
« Last Edit: March 02, 2009, 10:28:15 PM by Tamarin » Logged
Jochen Stier
Administrator
Sr. Member
*****
Posts: 498


Founder/Programmer

jochen.stier@gmail.com
View Profile
« Reply #8 on: March 02, 2009, 11:10:29 PM »

Good choice on the 8800 GT. I have exactly the same card right now. I got it from NCIX last year for $192. Maybe I will check out that GTX 260 you talked about.... That would be sweet.  The ATI cards generally have a much higher number of processors. I am thinking that would speed up Geist3D quite a bit, because it has a lot of heavy pixel shaders.
Logged
Jochen Stier
Administrator
Sr. Member
*****
Posts: 498


Founder/Programmer

jochen.stier@gmail.com
View Profile
« Reply #9 on: March 07, 2009, 01:55:25 AM »

He Tamarin,


How did your graphics card work out for you? Do you have a dual core processor? I will release a new version of the runtime engine soon, that uses a better algorithm for the level of detail of the terrain. Plus, it uses two threads now to compute the noise function. My CPU is now utilizing both cores, and the graphics engine tries to keep the number of terrain patches constant no matter where you looking. This means, that if you on the surface of one planet and then look up into the sky to see the other planet, it gets tessellated to much more detail. Before, the distance from the viewer was the deciding factor for when the terrain gets more detail. Now it also depends on the resources available. I wonder how this will run on your system now. Stay tuned for the next release…..


J

BTW, check your PMs.
Logged
Pages: [1]
Print
Jump to: