I want to write something to educate the bare basics of today's graphics technology.

I can't stand the ignorant idiots who doesn't even have the slightest grasp of what they're looking at when it comes to graphics. This applies to users of all 3 consoles. I want to write something that's actually targeted at Wii fans, but should also be enlightening to 360/PS3 fans as well. I mean, it's not like the average 360/PS3 owner actually gets what they're seeing unless they hang out at beyond3d. The tech in anything beyond the Wii is still way over my head right now, that why I'd like to study up on weaker tech before moving onto something more advanced. At least having a grasp of the simpler tech gives me better appreciation to the more advanced stuff and I hope my article can do the same for others. I want to explain things from an idiot standpoint to make things as easy to grasp as possible.

Before that though, I still have some questions, and that's why I'm here. I have a few questions and requests to research.

Requests:

- Does anyone have the PC version of Oblivion? If you do, can you do me a favor and take a screen shot for me? I need 2 screen shots just at the very beginning when you start off locked in prison. You know the parallax mapped bricks on the wall? I'd like some screen shot showing them off, while another screen shot of the wall from a steeper angle where your vision is almost parallel to the wall. When your vision is almost parallel to the wall, you should notice the parallax map illusion disappear and pop flat into the wall. I want a screen shot of that. Oh, the first screen could be taken at an angle just before the bricks lose their illusion. That'll better help illustrate my point.

Questions:

1. Ok, I asked a bit about vertex shaders, and now I understand it a little bit better, but I still have more questions. For example, what is the point of the vertex shader test in 3Dmark 2002 and 2003? When I watch it, I see tons of ogres/agent smiths walking around shooting/swinging their clubs. I really don't get what I'm suppose to be seeing in there that's related to vertex shaders. I'm sure they are using them, but where, and how?

2. The term "shader" is just a name, correct? I recall somewhere there's an article explaining that shaders is just a name created specifically for directx, but I can't find it. I want to link to it in case idiots don't believe it. I mean, it's just a name, I could technically say that Open GL games (Doom 3 for example) doesn't use shaders because it's just a name for a function in a graphical API by MS.

3. How are multi-texturing and shaders related? Is it possible to multi-texture without using shaders, or are they inseparable? Is multi-texturing just another form of shader? I understand the concept of multi-texturing well enough (water is a good example of it), but shaders are still a bit tricky.

I'll be back with more questions later.

Thanks in advance.

This question is for an unrelated idiot rant I might want to rant about later.

Now we know the Wii can't do HD due to the lack of (or insufficient) frame buffering, but what about HD 2D sprites? I understand that back in the N64/PS2 days, 2D graphics need to be loaded into the RAM for the CD based systems, and the larger and higher resolution the art, the more RAM is needed, but what about the Wii's 88MB of RAM? Would it be enough for say a 720p 2D sprite based fighter, or is it also much more complex than I'm thinking?
 
If by ignorant idiots, you're referring to the denizens of certain forums that I have probably visited before, you're wasting your time.

1. You know how the ogres and agent smiths are walking around and doing stuff? Their vertices need to move for them to do that. That's what the vertex shaders were doing. In the olden days, animation was done on the CPU, then sent to the T&L unit. In this tomorrow future age we're living in, it's almost all done on the GPU.

2. "Shader" doesn't refer to anything DX specific. It can refer to little sub-programs designed to manipulate things like vertices and pixels, or it can refer to the hardware designed specifically to run those programs. It's confusing, I know. The same word can refer to two different things. So for example, you can write a vertex shader for the Wii (in the sense of the program). The billowing curtains in RE4 are a good example. On the other hand, the Wii does not have vertex shaders (in the sense of the hardware)--that billowing curtain code is running on a general-purpose GPU.

3. Multitexturing, aside from simply drawing decals and light maps, can be used to produce some of the effects that one would use a pixel shader to do on a more modern machine. So you can write a "shader" that specifically uses a pixel shader, or you can write a "shader" that specifically uses the multitexturing capabilities of a TMU. However, the range of effects you can produce using multitexturing is substantially smaller.
 
Answers:

1. Vertex shaders are programs that run on vertexes in a scene. In the 3DMark vertex shader tests the animations the characters preform are done using vertex shaders. They have many on screen characters in an otherwise simple scene in order to isolate vertex shader throughput and provide a meaningful benchmark.
2. Yes it's just a name.
3. Multi texturing and shaders are not related. A multi textured pixel would just be a pixel with multiple textures applied.

edit: pirate beat me to it.
 
If by ignorant idiots, you're referring to the denizens of certain forums that I have probably visited before, you're wasting your time.

No no, I'm doing it for my own blog. Are you talking about neogaf's forums though? Cause yeah, good luck trying to find some intelligent conversations there.

To The Mods - you sure this belongs in the beginners section? I am asking about console technology. I'll probably have more questions later too.
 
Last edited by a moderator:
I believe the term shader comes from Pixar's renderman. DirectX adopted this term. In OpenGL you might also see them referred to as programs. I.e. vertex program.
 
No no, I'm doing it for my own blog. Are you talking about neogaf's forums though? Cause yeah, good luck trying to find some intelligent conversations there.

I was thinking more about the forums of places like thewiire, where you can still find such brilliant comments as "THE WII HAS WITH BANDSWITHS OF MORE THAN THREE KILOFACTORS AND A 3D IMAGING PATENTS IWATA SAID YOU WILL SAY WOW U JUST WAIT LAZY 3RD PARTIES DONT USE TEV DO U KNOW TEH PAOWER OF THET EV?!?! OLOLOL!" without a trace of irony.
 
It can refer to little sub-programs designed to manipulate things like vertices and pixels, or it can refer to the hardware designed specifically to run those programs.
As far as I know, only people without 3D graphics knowledge call the actual hardware shaderprocessors/SPs/ALUs "shaders". It's a bit like calling the CPU "code". But someone please correct me if I'm wrong here...
 
As far as I know, only people without 3D graphics knowledge call the actual hardware shaderprocessors/SPs/ALUs "shaders". It's a bit like calling the CPU "code". But someone please correct me if I'm wrong here...
True, a shader is a piece of software not a hardware block.
 
As far as I know, only people without 3D graphics knowledge call the actual hardware shaderprocessors/SPs/ALUs "shaders". It's a bit like calling the CPU "code". But someone please correct me if I'm wrong here...

Is insulting me necessary? Since the DX8 era, plenty of non-idiots have referred to the hardware and the software with the same words. Heck, I don't even remember what the programmable geometry manipulator in the pre-USA days was truly, technically called, although some people would still call it a "programmable pixel pipeline" instead of a "pixel shader." It might not be the true technical use, but it's used that way by a lot of people, so it's helpful to know what people may be referring to.
 
Is insulting me necessary?
No insults intended, I was just trying to say that while a lot of people use the term "shaders" for the hardware logic, it is not the correct name. The problem seems to be that a lot of people without 3D graphics knowledge do not seem to know that and still use the name, thus giving the wrong impression that it's correct terminology.
 
"I was just trying to say that while a lot of people use the term "shaders" for the hardware logic,"

ive done it, still do sometimes ;)
 
Ok, a couple of more Qs.

1. When I talk about things like shaders and multi-texturing, should I just refer to them as special effects, or do they fall into another/different groups with different names?

2. You know the lighting effects being reflected off of water with EMBM? Are those lighting effects a result of shaders, or just multi-texturing?

3. I hear many different terms for the same effect (ex: relief mapping, parallax occlusion mapping). What the heck is gloss mapping? Is that just another name for EMBM?

4. This is tricky and I don't want to get/give the wrong impression to the readers so I need to carefully word this question and the answers. Now we know idiots out there thinks it's possible for the Wii to do Gears at 480p (yes, I know it's not possible), but suppose it can, what would the system need more of in order to achieve something like this?
 
DeadlyNinja, as you yourself seem to have no idea about graphics programming, I hardly see how you are going to educate anyone about it...

And "shader" is not "just a name". It has, de-facto, became the standart name for the programms that run on the GPU. Sure, they were called "programs" in OpenGL back in the days, but this is not the matter.

Now, what is multi-texturing and what is the difference to fragment/pixel/whatever shader. With multitexturing, you take values of the texels of the different textures and combine them together in a special way.. There is some flexibility to it, true, but basically, this is a fixed algorithm, leaving you will only few choices. Now, shaders are real programs, that run on the GPU. They can access the textures and perform various computations, which makes them very flexible. This means, shaders can emulate enything which can be done with a traditional multitexturing approach, while the opposite does not hold.

When talking about special effects, I assume you mean special techniques in graphics programming that are used to reach a certain goal. Basically, having an imput A you want to get a B. This is a special effect (you have some material properties, and you want to do some lighting with it, for example). Now, how you do it is just another question. You can do bump mapping with sahders, you can do it with a flexible multitexturing hardware (like GF3) or you can do it some other way. Therefore, IMHO shaders cannot be refered to as "special effects": they are the instrument to get teh things done. In the end, the term "special effect" does not matter, as slight variations of the algorithms are possible. There are dozens of ways to do shadow mapping and even more about lighting. You end up coding the stuff in the way it suits you and your application best.

To the core: the computional flexibility of the system matters. If your system supports shadrs (flexible programmable hardware), you have more playground and more possibilities, meaning you can utilize more techniques and what you call "effects".
 
I don't have any graphical programming knowledge, but I at least understand what I'm looking at when I see something in the game. Obviously I don't get everything, but I can tell what's what pretty accurately. Besides, I'm not really going to get too deep into the programming side of things, so there's no need to worry.
 
Back
Top