Welcome Guest [Log In] [Register]
We hope you enjoy your visit.


You're currently viewing the Ultimate 3D Community as a guest. This means that you can only read posts, but can not create posts or topics by yourself. To be able to post you need to register. Then you can participate in the community active and use many member-only features such as customizing your profile, sending personal messages, and voting in polls. Registration is simple, fast, and completely free.

Join our community!

If you are already a member please log in to your account to access all of our features:

Username:   Password:
Add Reply
U3D should live on!; Some things about our favorite engine||Features you want to see in U3D 3
Topic Started: Oct 26 2012, 10:28 AM (1,121 Views)
gmfun
Member Avatar
Advanced Member
[ *  *  * ]
Hi everybody!
As I wrote in topic GM Studio+Ultimate3D Review I am going to start a topic about improving Ultimate3D.
So,the first thing I want to tell you is about a forest(yeah,about a forest!).
In the U3D 2.0 Tech Demo we can see great example how to render big forest in U3D.
But everybody understands that it is far from being perfect because rendering such forest could be done more faster. The main problem is behind the SLOW GML code wich is used to implement quad tree culling.
In the file "Programming notes",included in Tech Demo folder Dr. Best wrote this:
Quote:
 
I may add some special features to future versions of Ultimate 3D, which could reduce the things Game Maker needs to do for forest management and therefore could increase the performance

So,now I want to ask Dr. Best whether he could do this for us.
I would be grateful(and other members of U3D Community,I suppose) for implementing some forest rendering system.As for me it would be very useful!

If you find some another things to implement in U3D write them down here.I also will try to find more facts and ideas.

The second thing I want to add: Even if U3D would be still the same,we should make something to make it live on.
Many members would think that it is mad idea,but I want to tell you about it.
So,my idea is to create some pdf magazine about U3D.
A lot of nice ideas are on U3D Community but a lot of them are written in old topics wich could be never seen by new members.
Ultimate3D magazine also will popularize U3D engine. And I really want that everybody will know about one of the best 3D engines for Game Maker ever created.

Anyway, thank you,Dr. Best,for Ultimate3D.

***************************************************************************************************************************
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
***************************************************************************************************************************

EDIT:

Everybody knows(but I`ve forgotten) that U3D 2 for GM has been discontinued.
Now you can post in this topic to tell Dr.Best what features you want to see in Ultimate3D 3.
Edited by gmfun, Nov 6 2012, 08:28 PM.
My blog
Offline Profile Quote Post Goto Top
 
Replies:
Dr. Best
Member Avatar
Administrator
[ *  *  *  *  *  * ]
alexmach1
Nov 13 2012, 01:20 AM
I meant pixel colors on the screen, ala a color at position x128, y1251 has an RBG of (255,255,255), therefore place a gradient circle at that position for fake volume lighting.
Doing that on the CPU, would totally kill your performance, but it can be done on the GPU using post screen shaders very well. Nonetheless there will be a feature to create images from render targets, so you can access screen pixel colors, but it won't be very efficient. It's more for things like screenshots or GPU generated textures.

alexmach1
 
what I meant was texture stages, so Color Correction (team color textures, used most often in halo) textures can have their colors changed while being multiplied over the diffuse without changing the overall model color. think of minecraft's grass texture, where the grass changes color but the dirt stays brown. not separate materials, as that would require outlining the texture with geometry
There won't be a built-in feature for that, but it will be easy as cake with the new shader system.
Offline Profile Quote Post Goto Top
 
alexmach1
Member Avatar
Graphics addict
[ *  *  *  *  *  * ]
the ability to load texture RGBA channels as separate textures, for ease of storing specular, height, etc maps
Offline Profile Quote Post Goto Top
 
RonBurgundy
Member Avatar
Forum Borat
[ *  *  *  *  *  * ]
Can I make a small suggestion?

Better frame interpolation with models, also allowing for manipulation of individual bones(rotation) at the same time.
!!! DEFEND POP PUNK !!!
Offline Profile Quote Post Goto Top
 
Dr. Best
Member Avatar
Administrator
[ *  *  *  *  *  * ]
alexmach1
Nov 14 2012, 03:59 AM
the ability to load texture RGBA channels as separate textures, for ease of storing specular, height, etc maps
Actually that would reduce performance. The cost of a texture sample in the pixel shader is mostly independent of the number of channels. Sampling more textures with less channels would be more expensive. Also, Direct3D 10 supports exceptionally pixel sizes, which are a multiple of 32-bit, so unless you are using 32-bit floats per pixel, you will be wasting space on padding channels. Nonetheless it can be done. If an image file provides only one channel (some newly supported file formats can do so, e.g. *.exr) it will be loaded as texture with a single channel. I could also provide an image filter, which extracts individual channels from an image. Most of the time there is a reasonable use for the additional channels anyway, e.g. for normals in the case of height map or for the specular color in the case of specular maps.

RonBurgundy
 
Can I make a small suggestion?

Better frame interpolation with models, also allowing for manipulation of individual bones(rotation) at the same time.
I'm planning to integrate Bullet physics. This will probably yield some fancy new animation features. Also the animation system is going to be less of a black box allowing you to define how bone transformations are derived yourself. However I won't do much about avatar animation for now, because it is an awfully complicated topic. The human perception is simply too pedantic when it comes to the way humans move.
Offline Profile Quote Post Goto Top
 
RonBurgundy
Member Avatar
Forum Borat
[ *  *  *  *  *  * ]
Ok so maybe not so small. When you say Bullet Physics do you mean the GM dll or something you will make? Either way this would be really helpful. While on topic will there be a way to make bullet decals from particles instead of individual objects?
!!! DEFEND POP PUNK !!!
Offline Profile Quote Post Goto Top
 
Dr. Best
Member Avatar
Administrator
[ *  *  *  *  *  * ]
RonBurgundy
 
When you say Bullet Physics do you mean the GM dll or something you will make? Either way this would be really helpful.
I mean the open source Bullet physics library. This is the library, which is made accessible through the GM Bullet DLL, but this does not mean, that I will use this DLL. The new Ultimate 3D has nothing to do with Game Maker whatsoever.

RonBurgundy
 
While on topic will there be a way to make bullet decals from particles instead of individual objects?
You can use hardware-accelerated instancing to do that. That wouldn't be using particles, but it would be just as efficient because all bullet decals would be rendered in a single batch.
Offline Profile Quote Post Goto Top
 
alexmach1
Member Avatar
Graphics addict
[ *  *  *  *  *  * ]
is phong shading an open source thing or is it something that requires permissions/payments?

an update to the existing environment map that doesn't mirror the edges around a model. it's hard to explain, but when a texture is applied to a model as an environment map, the edges of the texture are mirrored and destroys some of the effects that can be created with them. pictures soon to come
Edited by alexmach1, Nov 17 2012, 08:19 PM.
Offline Profile Quote Post Goto Top
 
Dr. Best
Member Avatar
Administrator
[ *  *  *  *  *  * ]
alexmach1
Nov 17 2012, 08:19 PM
is phong shading an open source thing or is it something that requires permissions/payments?
Phong shading boils down to a rather simple formula and it is not proprietary. It is just a well-known definition of a BRDF. BRDF stands for "bidirectional reflectance distribution function" and it is a mathematical framework for the description of reflectance properties of materials. It is also well-known, that you should better not use the Phong BRDF, because it is not physically correct in the sense, that it does not conserve energy. If you light an object with the Phong BRDF at a sufficiently flat angle, it will emit more light than it receives.

For this reason I have not implemented the Phong BRDF, but there's something a lot better than that. The engine features a system, that lets you define custom BRDFs (or use BRDFs defined for you by others). Thus adding the Phong BRDF would take just a few lines of HLSL code and a little bit of toying around with components. It's really not very hard. Also, I have implemented the diffuse BRDF and the cosine lobe BRDF, which provide a physically correct alternative to the Phong BRDF.

BTW: Ultimate 3D 2.1 used per-vertex Phong shading.

alexmach1
 
an update to the existing environment map that doesn't mirror the edges around a model. it's hard to explain, but when a texture is applied to a model as an environment map, the edges of the texture are mirrored and destroys some of the effects that can be created with them. pictures soon to come
I'll wait for the pictures then, because I have no idea what you mean unless it's aliasing.
Offline Profile Quote Post Goto Top
 
RonBurgundy
Member Avatar
Forum Borat
[ *  *  *  *  *  * ]
Dr. Best
Nov 14 2012, 10:56 PM
RonBurgundy
 
While on topic will there be a way to make bullet decals from particles instead of individual objects?
You can use hardware-accelerated instancing to do that. That wouldn't be using particles, but it would be just as efficient because all bullet decals would be rendered in a single batch.


So basically write some code that would tell my GPU to render the objects rather than the CPU?
Or Am I misunderstanding you?
Edited by RonBurgundy, Nov 18 2012, 12:16 AM.
!!! DEFEND POP PUNK !!!
Offline Profile Quote Post Goto Top
 
Dr. Best
Member Avatar
Administrator
[ *  *  *  *  *  * ]
RonBurgundy
Nov 18 2012, 12:15 AM
Dr. Best
Nov 14 2012, 10:56 PM
RonBurgundy
 
While on topic will there be a way to make bullet decals from particles instead of individual objects?
You can use hardware-accelerated instancing to do that. That wouldn't be using particles, but it would be just as efficient because all bullet decals would be rendered in a single batch.


So basically write some code that would tell my GPU to render the objects rather than the CPU?
Or Am I misunderstanding you?
Yes, that's pretty much correct.

You give the GPU one prototype object and a list of parameters for the instances (e.g. different positions and rotations). All the rendering is done in one batch on the GPU and does not cause significant overhead on the GPU.
Offline Profile Quote Post Goto Top
 
alexmach1
Member Avatar
Graphics addict
[ *  *  *  *  *  * ]
Dr. Best
Nov 17 2012, 09:54 PM
alexmach1
 
an update to the existing environment map that doesn't mirror the edges around a model. it's hard to explain, but when a texture is applied to a model as an environment map, the edges of the texture are mirrored and destroys some of the effects that can be created with them. pictures soon to come
I'll wait for the pictures then, because I have no idea what you mean unless it's aliasing.
this environment map below:
Posted Image
is designed to give a model a sort of red falloff appearance, where the edges of a sphere/object are the outermost colours of the texture while the center of said object is the center colour(black). however, when applied to a sphere model, the edges are black and the parts in between the center and edge are the edges of the texture, shown below:
Posted Image
preventing the falloff effect from happening :(
also, it's not just the model as this happens with all objects with this map applied.
Offline Profile Quote Post Goto Top
 
Dr. Best
Member Avatar
Administrator
[ *  *  *  *  *  * ]
Well, yeah that might be considered a bug. Ultimate 3D 2.1 treats sphere maps pretty much the same as cube maps, with the only difference, that it discards one coordinate. I recommend, that you work around it by using a cube map. Keep in mind however, that environment mapping is done in global coordinates, so using it for a fall-off effect relative to the camera is a hack anyway. This would be a good use case for vertex shaders.

I do not really care about this issue now, because sphere maps are a horrible way to define environment maps. They stretch the environment ridiculously. Cube maps are hardware-accelerated, so why not use them instead? If you want sphere maps in the new engine nonetheless, it won't be hard to define the corresponding components.
Offline Profile Quote Post Goto Top
 
alexmach1
Member Avatar
Graphics addict
[ *  *  *  *  *  * ]
would it be possible to give SetMaterialEnvironmentMap RGBA values?
Offline Profile Quote Post Goto Top
 
Dr. Best
Member Avatar
Administrator
[ *  *  *  *  *  * ]
alexmach1
Nov 18 2012, 06:11 AM
would it be possible to give SetMaterialEnvironmentMap RGBA values?
The new engine sticks to physics-based rendering. You can break out of this, if you want to, but basically you are not supposed to and built-in engine features usually don't. Using environment maps in a physics based rendering scenario is equivalent to setting up a light source based upon a light probe (which is basically the same as an environment map) and setting up an ideal specular BRDF for the material. In this case you could either change the specular albedo (i.e. the "material reflection color") or you could multiply the light probe by some constant to get "colored environment mapping". Both can be done easily.

As a general note on features of the new engine: Currently there are hardly any specialized features. Right now the engine can not render anything at all (because I'm redesigning the renderer) and I will be happy, if it can render lit models without animations by the end of the month. Particle systems and terrains have been deleted for now. The good thing about the way I am redoing things currently is, that I am focusing on flexible frameworks rather than specific features. When the engine gets released everybody will be capable of adding new features to the engine, even without the source code. And in many cases this will be possible without writing any C++ code.

Before a release I will make sure, that the engine ships with a nice set of built-in features, but currently this is not the focus of my work. This is the reason why my answers to your questions often go like "Yes, this will be possible, but I won't write a specialized feature for it." or "Yes, but I have not done it yet.". This is very different from Ultimate 3D 2.1, where even the most trivial things like changing some parameters for stencil shadows were completely impossible, because there was no specialized interface for doing so.
Offline Profile Quote Post Goto Top
 
ZetaBoards - Free Forum Hosting
Free Forums with no limits on posts or members.
Learn More · Register for Free
« Previous Topic · Off-topic · Next Topic »
Add Reply