• Advertisement
Sign in to follow this  

When GPU's getting really fast...

This topic is 4649 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi guys, I'm actually a beginner in this area and I'm learning texture and bump map recently. I read that why stuff like texture exits is because the GPU is not powerful enough to do the real-time rendering for complex scenes. I'm just wondering, as GPU speed is growing really fast, if the GPU is really fast and can render geometies of huge size, say hundreds of millions of triangles, in above 60fps, will we still need the techniques like texture and bump map? I really want to hear you guys' opinions.

Share this post


Link to post
Share on other sites
Advertisement
hi,

of course we'll still need textures, and for quite a long time probably ^^ 300 millions of triangles / second is far from enough to get rid of the textures. Did you ever try to model something in Maya, 3DSMax or another modelling software without any texture ? If so, you know that to achieve results as good as textured models would require billions of triangles : unthinkable in real-time.

Just an example : the humain skin contains of many little holls. In a texture, you can simply paint them, and it's nice. Do you imagine the number of polygons just to model those tiny little details ?

Share this post


Link to post
Share on other sites
Most of the GPU power nowadays is actually being fed into the pixel pipeline -- that is, the part that does texturing and per pixel shading effects. No matter how much geometry you add, you can really only get so far. Some of the per pixel effects are naturally dependent on how the view is related to what you're doing, so texturing, bump mapping, and all of the other shader techniques are more important than ever.

Share this post


Link to post
Share on other sites
This seems to be a little misunderstanding...

Textures exist because they are simple and straightforward way to describe what mesh looks like. They are nowadays used for a wide variety of things (e.g.normals maps, precomputed radiance transfer, ...) serving more as arrays of some precomputed values, than what they were used at the beginning for.

What you read might probably relate procedural texturing (not textures!) which, as the GPU speed increases, become more practical. There's one quite advanced 3d FPS game, which uses procedural textures (edit: generated at startup) only, but don't remember what was the name (it was quite famous some time ago and a very nice thing about it was it was no more than something like 1 MB in total:) ). But procedural textures will never describe coca-cola logo somewhere on the building. It can be very well used for the nature however.

To sum up, no matter how fast GPU will be, textures will always have its use in 3d graphics.

[Edited by - MickeyMouse on May 31, 2005 11:19:14 AM]

Share this post


Link to post
Share on other sites
thinking about kkrieger (96kb)?
http://www.theprodukkt.com/

afaik, kkrieger don't use pr pixel procedural texturing, it generates texture- and normal-maps at init-time.

Share this post


Link to post
Share on other sites
Quote:
Original post by MickeyMouse
This seems to be a little misunderstanding...

Textures exist because they are simple and straightforward way to describe what mesh looks like. They are nowadays used for a wide variety of things (e.g.normals maps, precomputed radiance transfer, ...) serving more as arrays of some precomputed values, than what they were used at the beginning for.
I think he understood perfectly. The point is that textures are a more straightforward (and less power-hungry) way of describing what a surface looks like, compared to describing that surface with millions of individual triangles.

Quote:
But procedural textures will never describe coca-cola logo somewhere on the building.
Of course it can. The code to generate it would just be quite complex, and would probably end up referencing an external data source (like a texture, or a bezier map) to define regions. You can generate pretty much any image procedurally though:

if(texCoords == (0.00f, 0.00f)) return float4(0.f, 1.f, 0.f, 1.f);
if(texCoords == (0.01f, 0.00f)) return float4(0.f, 1.f, 0.3f, 0.9f);
if(texCoords == (0.02f, 0.00f)) return float4(0.2f, 0.9f, 0.4f, 0.2f);
/* etc... */

Share this post


Link to post
Share on other sites
THe original question is valid. Eventually we will be able to create a mesh with billions of polys to describe each pore and hair in human body. In that case, original lighting equetions will be more then valid. But I guess we will have to wait at least 5 years to see something like that.

Meanwhile, Unified Shader Architecture helps reducing the difference between pixel and vertex operations.

Luck!
Guimo

Share this post


Link to post
Share on other sites
Quote:
Original post by superpig
Quote:
But procedural textures will never describe coca-cola logo somewhere on the building.
Of course it can. The code to generate it would just be quite complex, and would probably end up referencing an external data source (like a texture, or a bezier map) to define regions. You can generate pretty much any image procedurally though:

if(texCoords == (0.00f, 0.00f)) return float4(0.f, 1.f, 0.f, 1.f);
if(texCoords == (0.01f, 0.00f)) return float4(0.f, 1.f, 0.3f, 0.9f);
if(texCoords == (0.02f, 0.00f)) return float4(0.2f, 0.9f, 0.4f, 0.2f);
/* etc... */


You could store the coca-cola logo as vector graphics, and then use it to create a resolution independant texture. Or Failing that, draw it from the vector data, but what a waste that would be!

Share this post


Link to post
Share on other sites
5 years? it's quite optimistic...

Anyway I think that using such huge number of polygons can be difficult for the artists. Maybe there will be more polygons but textures will always be used to make skins look good and not to make the artists crazy while drawing millions of polygons for just an arm.

Share this post


Link to post
Share on other sites
IMO textures are the present & the future.

You can view normal maps as a nice mesh compression. When you apply height maps, and perform relief mapping, they are like displacement maps, only superior.

They are superior to displacement maps because they can be easily anisotropically filtered, with mip-maps, etc. Mip-maps provide a detailed per-pixel LOD that could never be achieved as economically as with meshes.

Relief maps also can provide per-pixel correct depth, casting & receiving shadows, and interpenetrating other objects correctly.

The traditional advantages of true geometry are now achievable by textures & pixel shaders, and the advantages of texture approaches still remain - less storage, pixel & shader power scales faster with new GPUs than triangle setup power, easy & fast LOD, etc.

Share this post


Link to post
Share on other sites
I agree with SimmerD - increasing geometry is not a particularly attractive option. Textures are a more efficient way of storing information on surface details in many cases but more significant is the aliasing issue. Mipmaps provide a good way of addressing aliasing for textures but geometric aliasing is harder to address without doing a lot of multi or super sampling and tends to look really bad. Triangles smaller than 4 pixels also make really inefficient use of modern hardware since pixel shader quads are under-utilized.

Share this post


Link to post
Share on other sites
Quote:
Original post by Vampyre_Dark
Quote:
Original post by superpig
Quote:
But procedural textures will never describe coca-cola logo somewhere on the building.
Of course it can. The code to generate it would just be quite complex, and would probably end up referencing an external data source (like a texture, or a bezier map) to define regions. You can generate pretty much any image procedurally though:

if(texCoords == (0.00f, 0.00f)) return float4(0.f, 1.f, 0.f, 1.f);
if(texCoords == (0.01f, 0.00f)) return float4(0.f, 1.f, 0.3f, 0.9f);
if(texCoords == (0.02f, 0.00f)) return float4(0.2f, 0.9f, 0.4f, 0.2f);
/* etc... */


You could store the coca-cola logo as vector graphics, and then use it to create a resolution independant texture. Or Failing that, draw it from the vector data, but what a waste that would be!


Yeah, that's the sort of thing I was getting at with my bezier map reference. I have seen a paper or article (might have been a GPU Gems one) on storing BSP trees in a texture, and using it to classify a point's region (and thus colour). Similar thing goes for the octree volume texture thing in GPU Gems 2. Probably not great for general-purpose images, but describing things like fonts in this way could be very advantageous...

Share this post


Link to post
Share on other sites
Quote:
Original post by cosey
Hi guys, I'm actually a beginner in this area and I'm learning texture and bump map recently. I read that why stuff like texture exits is because the GPU is not powerful enough to do the real-time rendering for complex scenes. I'm just wondering, as GPU speed is growing really fast, if the GPU is really fast and can render geometies of huge size, say hundreds of millions of triangles, in above 60fps, will we still need the techniques like texture and bump map? I really want to hear you guys' opinions.



Probablly, but not for the reasons you think. For film, some studios' don't use textures at all. When they are used, it's just a conveience thing, not an efficency reason (there are better compression techniques then textures). Most renderers sub divided down to micro-polygons anyway.

However, the main reason we will probablly use textures in real-time is because while the film rendering can use techiques like dicing, we don't have this ability in real time rendering. Basically, while a film gets tens of 1000s of samples per pixel, in real time graphics we get at most a couple. Micro-triangles are the enemy in real time. We can't do much about them. Thus tessellating objects at insane rates isn't so much a performance problem as it is a quality one. It looks bad.

When you use textures, however, you have alot more tricks available, you can do sampling and anti-alising in the domain of the texture. MIP maps are a crude technique for this, but as shaders become more complex expect them to anti-alias themselves. This can only be done in the texture domain, however, so you need triangles with some pixel coverage (no smaller then 15 pixels).

So short answer yes. Long answer: there is alot of technology and techniques yet to be invented using textures.

Share this post


Link to post
Share on other sites
simmerD is correct ( if u have every rendered a mesh with 1,000,000 polygons onscreen when it occupies a small region youll know what i mean ), it aliases like fuck + looks horrible
textures give so much better visual quality,
not to mention the huge memory requirements of 1,000,000 polygon models

Share this post


Link to post
Share on other sites
Textures and per pixel effects are very important, because the more IHVs pour into per pixel power, the sooner we can switch over to ray traced graphics! :D

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement