April 23, 2024, 06:55:31 AM

News:

IonicWind Snippit Manager 2.xx Released!  Install it on a memory stick and take it with you!  With or without IWBasic!


just a texture related functionality thought

Started by Todd Riggins, October 09, 2006, 08:38:43 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Todd Riggins

October 09, 2006, 08:38:43 PM Last Edit: October 10, 2006, 11:55:52 AM by Todd Riggins
After having some delusions of grandeur about getting a shareware 3d editor going(ie: I cant find the perfect mix between an already 100% made 3d engine with mesh building capabilities and a GUI )...

I came to the conclusion that I desire to program in Aurora with it's excellent gui capibilities. Now, I need to find somehow to get the 3d aspect of Aurora functionality to progress. Thus, I dont offer any immediate requests, but a "feature request thought" to be developed over time... hopefully sooner than later... ;)

To the subject at hand, I would like to see more texture related functionality. What I'm after is a way to load an image from a pack file of my own design(ie: like a Quake Pak file for example ). One way, probably the better way, is to use the D3DXCreateTextureFromFileInMemory function. I personally would use the D3DXCreateTextureFromFileInMemoryEx for future functionality expansion off of it. Thus, I would be able to load a DX9 supported image direct from memory. The other way is to create an empty texture where we would be able to supply the d3d format to it and the image data. Ofcoarse we can always have both ways! ;)

Also, a way to access the texture to update it down to texel level and even to save it. For me, these texture related requests would help in 3d editor development. I want it for calculating lightmaps. Another idea is blending multiple layers of alpha'd meshes of a custom made terrain... each mesh containing it's own texture... once you get the terrain texturing looking the way you want it, I could then apply all the textures of each mesh of the terrain togethor and save it as one blended texture. Thus, only needing one mesh for the terrain... making it look perty. Another idea is a some kind of 3d object texture painter editor. etc...

Now that I got my full attention to Aurora programming, I have some things to program in which to be shared in code in it's entirety. Mostly just examples at first so I can fully integrate myself with what 3d Aurora has to offer so far. One of the bigger examples I will be creating will be the ellipsoid to poly collision system I referred to in another thread.

Oh... textures make visuals look pretty. But, Almost forgot to mention bringing in the Vertex and Pixel Shader stuff so we can have the opportunity to make things look even prettier. I was thinking about how that would be used in a general way in a engine... and ofcoarse one way is allowing each mesh have it's own shader tag'd to it. This reminded me of a different feature request in nature from this topic. Well, I should ask this first. Is there a way to render only the meshes you want to render? The draw method of C3DObject ofcoarse renders everything. If I remmeber right Setvisible tells what created meshs you want to be rendered or not. But, I need something like scene.draw(ShipMesh); scene.draw(Bullets)... without the direct use of scene.draw() by itself. Here, the main use I want that for is to be able to group meshes up and use a specified shader on them at once. Sort of the same methodology of having grouped polygons being rendered for a specified texture.

Anyways... all of this is just current thought and gives me something to post about. I would like to be able to load textures from memory though. Because, that would be ... cool.ÂÃ,  8)


*Some of you know that I am working on the IGDK project. Until I can get my head wrapped around proper rotation in OpenGL(I need rotation like in a 3d spaceship sim ) and also get a 3d editor on the shareware market( I want to create an unique community around this one), IGDK is on indefinite hiatus. Plus, some examples I create here will be applied to it later.

Time to get busy...( winamp starts the CD Audio soundtrack to Descent ][ )
Brought to you buy: http://www.exodev.com

Parker

That would be cool, and it would probably bring lots of publicity to Aurora. I'm not a big 2/3D person myself, but I can help with the GUI stuff. I don't want to be committed to a project though, but as always I'll answer any questions you post on the forums that I can.

Todd Riggins

Brought to you buy: http://www.exodev.com

J B Wood (Zumwalt)

2D on 3D isn't really that tough, and if you have a little photoshop under your belt it becomes that much easier.
This is just 1 of the many projects I now have started with Aurora, I figure to get several out at a single blast by christmas.. hopefully... snags here.. snags there... all do to time really, not game constraints... this application is totally amazing.

Todd Riggins

October 09, 2006, 10:05:28 PM #4 Last Edit: October 09, 2006, 10:07:24 PM by Todd Riggins
That looks smooth there, zumwalt  ;D

I havent even tried 2d on 3d stuff yet, glad to know it can be done with aurora 3d. Is that pixel perfect? Does the current 3d functionality have it where you can "z-order" meshes? I guess I need to look...
Brought to you buy: http://www.exodev.com

J B Wood (Zumwalt)

I am not a professional game writer, and still new to all of this, so I don't know how a 'mesh' could be pixel perfect. It is what it is, and this one is a medium res object. The navigator bar is in the process of getting animated, I need to look up the mouse click events again for a sprite on a 3d screen for finding its location or atleast how I get the x/y of the mouse pointer along with changing the graphic for the pointer.

Anyway, look at 2d as nothing more than web design, really, other than meta tags, all you are doing is placing the graphics images into lists and then hide/showing them when you need them. Special effects on the sprite is really doing things like sliding it around and such. That said all a menu is, is coordinated images on a screen and you pass to the events the mouse x/y coordinates and the button press event to that coordinate. The graphic of the button doing something special is either an animated gif or replacement of the image in a loop. (check out caveman demo running around here)

I posted this here to hopefully give you some more reason to write what you are looking to write and give you some encouragement. Aurora is much more than a game engine, its not even a game engine though, it can be used to write games, but its a full blown compiler. You can write regular windows applications in it and such.

What you are asking for with the memory functions, you can pretty much do now, although I haven't bothered with doing it. You create a binary buffer to hold the file, then load the file or files into the buffer array, what Paul hasn't added is a way to load the info from the binary in memory. Thats a little trickier than just loading files into a memory array buffer.

If DX already supports this, then until he adds it (if he adds it, it will probably be down the road, a nice thing to have, memory functions), then you can already use cdecl I think to use it. The engine's d3d is based on dx9 as it is.

Hope this helps encourage you to keep up the suggestions.

kryton9

Todd, glad you are going full steam with Aurora. Can't wait to see what all you come up with. I know Zumwalt is doing wonders, should be very exciting the next few months.
Thanks for your efforts guys!!

Todd Riggins

October 10, 2006, 03:10:53 PM #7 Last Edit: October 10, 2006, 03:14:43 PM by Todd Riggins
A big thanks for the encouragment guysÂÃ,  ;D

Aurora is much more than a game engine, its not even a game engine though, it can be used to write games, but its a full blown compiler. You can write regular windows applications in it and such.

That's exactly why I bought Aurora back in May. I have a pretty good grasp of working with OOP. Paul has really made the OOP concept with Aurora really nice and clean to work with. I've started working with mixture of C & C++ languages ever since Commodore Amiga's "Lattice C"( '85, '86? ). With Aurora's OOP, I just get this mysterious cool feeling using it. Probably mainly because the ease of programming with it.

Ever since the month of may, I been working on and off with Aurora getting the feel for it. Basically, 99% of my newbie style questions have been anwsered just by searching these forums. Now, when I go in head deep more into Aurora GUI classes and other areas, I most likely will be posting a lot more with even more newbie questions. I'm definetly looking forward to see what I can achieve with Aurora and to see where it's heading into the future.

I dont even see Aurora as a game engine. I see it as a competitor against other languages like Microsofts Visual C/C++ which is a good thing in my eyes. But yes, the 3d library that Aurora offers I am a bit familuar with. I was just starting to help Paul in developing the IBasic Pro version of it, beta 3D Pak, back before everything went south with Pyxia and I also I had to stop helping at the time because of a new job. Obviously there is new things added to it now like sprites that I'm not familuar with via the command set. Anyways, It's another perk that I like that comes with Aurora. I've been caught up with DirectX ever since it was first released as the "Windows Game SDK" back in 1995. So, when I feature request something for the 3D library, I try to throw in DirectX terminology such as D3DXCreateTextureFromFileInMemoryEx in which is a Direct 3D extension function in this case. I do that to help visualize what I'm thinking clearer so hopefully at least Paul can understand what Im talking about a bit more. Sometimes I forget to go into enough detail on what I talk about, but I try not to go into long winded posts or it will get a bit long and boring where nobody reads it fully. Probably just like this post.ÂÃ,  ::)


so I don't know how a 'mesh' could be pixel perfect

Sorry about that. I should of given more detail on what I was talking about.ÂÃ,  In your screenshot, looking at your nice looking graphic posing to be part of your gui, it looks really clean. Usually when one creates a quad mesh or sprite to display graphical gui elements like that in a DirectX screen, the pixels of the texture itself will look a little blurred out than what you see in your paint program( ie:photoshop, paint shop pro, etc.). When I refer to pixel perfect in this case, I meant does that texture you are displaying in that screen shot look a bit fuzy pixel wise compared to what you see in your paint program? Or do you see your texture on screen with no bluring of the pixels? When I say "bluring or fuzy of the pixels", it's common that when the "Direct3D render" renders the sprite or mesh with the texture applied to it, the pixels will "look" fuzy. This is because the pixels of the texture are not mapped out to the screen like you would see the texture image in a 2D paint program. In this case, the texture pixels in the 3D render are referred to as texels.


The navigator bar is in the process of getting animated, I need to look up the mouse click events again for a sprite on a 3d screen for finding its location or atleast how I get the x/y of the mouse pointer along with changing the graphic for the pointer.

Just curious as I havent tried working with sprites yet...

Can you garantee that no other polygons from a mesh will not render over your gui sprite? For example, in that screenshot you showed above, If you move towards the helicopter and start to go through it, will any of it's polygons render over the gui sprite you have there?

Brought to you buy: http://www.exodev.com

Ionic Wind Support Team

No the 2D elements render after 3D, so they are always on top.
Ionic Wind Support Team

J B Wood (Zumwalt)

Its pixel perfect by how you describe. What you see is what it looks like in Photoshop.
Clean and crisp.
The sprite layer is like looking through a clean glass window. Unlike other programs, you can determine the sprite size absent of the 3d window size. (atleast from my tests)

Todd Riggins

Brought to you buy: http://www.exodev.com

J B Wood (Zumwalt)

No you are correct, in the normal fassion on how typical engines treat sprites, but how Paul programmed it is totally different, in other game engines I got, its blurry. Its only crisp like this in Aurora.

Ionic Wind Support Team

To answer you're other question the 3D sprite engine makes sure it is a 1 to 1 mapping of pixels by not allowing the texture manger to create a multiple LOD texture when loading the image.  Which is why other 3D sprite implementations look blurry.

Paul.
Ionic Wind Support Team

Todd Riggins

Brought to you buy: http://www.exodev.com