When is the best time to learn vertex/pixel shading?

Started by
11 comments, last by Khatharr 11 years, 3 months ago
Should I learn it early on (like on the early stages of a first game)? Or later (like mastered the DX fixed functions and have created some games)? Should I learn the assembly like way first then HLSL, or HLSL first then the assembly like way?
Advertisement
I'd venture to say that its not worth going to a lot of trouble to learn fixed function (unless you require it), and it's definately not worth the trouble to learn the assembly shaders. Just learn HLSL or whatever equivalent.
I agree. Learn to manage textures, blending/testing, Zbuff, stream ports, vertex formats, all things that carries to shading as well, then switch to shaders as soon as possible - it's just easier, espcially when it comes to lighting IMHO.

Previously "Krohm"

Agreed.

In some ways, shaders are actually easier to learn than fixed-function graphics. There might be more actual work in shaders, but conceptually, I find them easier to deal with. You write code, which the GPU executes. That's a model a programmer should be familiar with at least. [wink]
There are no hidden tricks, no magic. You tell the GPU exactly what to do, and as long as you understand the math involved in putting triangles on the screen, you just have to code it.

On the other hand, the fixed-function pipeline is a big mystical black box you're never quite in control of. I found it a lot harder to actually get a feel for what was going on there.

But of course, ymmv.

Of course, the fact that the fixed function pipeline doesn't even *exist* in DX10 is a strong hint that Microsoft at least don't see a need for it *at all*, not even for beginners.

And I agree.
I agree with the other posters. Learning fixed-function is waste of time honestly, there's nothing to be gained (in terms of learning or performance) from using it.
when you're already trying to learn a brand new api, or possibly even just getting into 3D programming in general, stick with fixed function pipline at first, because it's easier.

but keep this in mind. DirectX 10, and the upcoming openGL(is it gonna be 2 or 3?) both do away with the fixed function pipline and rely solely on shaders, so it's getting to the point where you're not gonna have an option
--------------------------------------Not All Martyrs See Divinity, But At Least You Tried
Interstingly enough, I started a project around a year ago and was the lead guy in the team. I worked on PR, team management, and was the 'shader guy'. At that time I probably couldn't program a simple mesh to render in DirectX. Really you can learn something like HLSL or GLSL before knowing how to implement it but you won't understand how it really interacts with the rest of your game until you implement them. At least thats how it was for me...

=============================RhinoXNA - Easily start building 2D games in XNA!Projects

Quote:When is the best time to learn vertex/pixel shading?


The witching hour, hands down [wink]

Seriously though, as others have posted shaders are the way forward. I personally found shaders a big relief anyway, since you can just code whatever you want to do with your vertices and pixels instead of having to shoehorn everything into the fixed function pipeline. I'm a happy camper not having to mess around with the TextureStageStates anymore, for example.
Rim van Wersch [ MDXInfo ] [ XNAInfo ] [ YouTube ] - Do yourself a favor and bookmark this excellent free online D3D/shader book!
Thanks for your replies. That cleared enough things for me. So I did waste my time on creating some helper classes specifically for fixed function. Gotta start learning shaders.
I'd use it just so long as you're learning how to feed some basic info INTO the FFP. I wouldn't learn texture stages and all that stuff. Learn the basics of one side of the pipeline, then the basics of shaders, then expand.
-----------------------------------------------“The best, most affordable way to save the most lives and improve overall health is to increase the number of trained local, primary healthcare workers.”Learn how you can help at www.ghets.org

This topic is closed to new replies.

Advertisement