Home Technical Talk

Game rendering definitions on the wiki

http://wiki.polycount.net/CategoryRendering

Started this page today, hopefully to start to fill in the gaps of my understanding about game rendering terms.

I'd like to clarify things like "texture fetch" into artist-friendly prose, make it easier for artists to understand their engineers, and open the doors a bit to better communication about graphics issues.

Increasing communication between artists and programmers has always had concrete benefits in the studios I've worked with. Getting us on the same wavelength is the trick though.

Anyhow, ideas & suggestions welcome. It's pretty bare right now.

Replies

  • cman2k
    Offline / Send Message
    cman2k polycounter lvl 17
    Great idea Eric! This is tough stuff to explain but hopefully collectively we can get some good info here. There is a lot of misunderstanding in this area and it would be great to have a resource like this to share with my fellow artists at work.

    Maybe i'm off-base here, I don't know how we run the polycount wiki, but I might suggest breaking the general terms off into their own wiki pages. I personally like it when I read a description and important terms or concepts are links to other wiki pages that describe that term or concept in detail.


    Here's a little blurb I wrote up for my fellow artists some time ago to help spread some understanding.

    Draw Call:
    Draw Calls are sometimes misleadingly referred to as "Object Count".
    A "Draw Call" occurs when your GPU has to lookup a new material for a given set or strip of polygons.
    Every material per object constitutes a seperate Draw Call, so one model can have multiple Draw Calls.
    Less materials = Less Draw Calls


    Texture Fetch:
    A Texture Fetch refers to when a particular material causes your GPU to load a texture into video memory.
    There is a bandwidth limit here, and incurring many Texture Fetches at once can cause this bandwidth to become clogged.
    Some materials combine information into RGBA channels of a single texture to optimize Texture Fetches.
    Each individual material has a hard-limit on how many Texture Fetches it can have, under Shader Model 3.0 this is a limit of 8 Texture Fetches.
  • jocose
    Offline / Send Message
    jocose polycounter lvl 11
    omg, yes, excellent, I have been wanting something like this for awhile. Can we also get information up there regarding lighting systems? Like deffered lighting for example?

    Would also be nice to get something up there regarding gamma correction.
  • CrazyButcher
    Offline / Send Message
    CrazyButcher polycounter lvl 20
    cman2k wrote: »
    Each individual material has a hard-limit on how many Texture Fetches it can have, under Shader Model 3.0 this is a limit of 8 Texture Fetches.

    I am not sure what you mean, but that limit sounds wrong to me. I can do volume rendering in sm3 just fine and sample the volume texture hundreds, if necessary 1000s of times. There is multiple limits around texture fetching, the most important for an artist is the amount of textures one can use within a pixel shader, that is 16 for sm3 hardware.

    As for the more hardcore limits you can look at
    http://en.wikipedia.org/wiki/High_Level_Shader_Language
  • cman2k
    Offline / Send Message
    cman2k polycounter lvl 17
    Ahh, sorry about that. I did mean to refer specifically to texture calls per shader/material but I guess I didn't word that very well.

    I guess I was mistaken with the limit. At work we limit at 8, but in retrospect this is probrably for SM2.0 backwards-compatability, not SM3.0? I know I've read some conflicting information on various websites..but even that wiki page you linked seems to confuse me, haha.
  • rasmus
    Great initiative, Eric. Who'll be writing the definitions? Seems to me whatever is being written there better be checked by actual programmers!

    Maybe something enlightening on shader instruction counts if anybody can pull it off?

    As for drawcalls, each strip of geometry is also a separate drawcall, right? Regardless of materials. Hence the call for models that contain as few uv shells / smoothing breaks as possible.
  • CrazyButcher
    Offline / Send Message
    CrazyButcher polycounter lvl 20
    the wikipedia link refers to the ms docs, where more stuff is explained
    http://msdn.microsoft.com/en-us/library/bb509635(v=VS.85).aspx

    rasmus, what kind of enlightenment do you expect from the instruction count knowledge? I my opinion too much information can be confusing if one doesn't have practical experience with stuff, the words will stay without a meaning. And the risk of false interpretation rises.

    Dependent texture limit:
    means the texture coordinate from the vertex shader is altered within the pixel shader, before it is used to sample a texture. Say you move texture coordinate in pixel shader by some value / math operation.

    Texture indirections:
    The result of one texture operation influences the texture coordinate of another texture. With the example above, the "some value" would be read from another texture.

    Texture Instruction Limit:
    any texture fetch/sample instruction

    The problem is that this information is still somewhat "meaningless" if you don't know "more details" as in how hardware works with memory hierarchy and so on... and then is the question do you really need this information? Because it's just gonna get more ;) Make sure you play around with stuff to actually "experience" all these things (write shaders, use some simple graphics demos to get familiar with pipeline...).
Sign In or Register to comment.