Jump to content
  • Advertisement
Sign in to follow this  
Anddos

asm vertex shader question

This topic is 2173 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

this is my very small vertex shader i have learnt from my book ,

const char* strAsmVertexShader =
"vs_1_1\n"
"dcl_position v0\n"
"m4x4 oPos,v0,c0\n"
";\n"
"";

i am not understanding what c0 means , is it world*view*projection?

if i was making an fps game, how would the vertexshader look then , do you have to multiply the guns position vertices by projection only , or is it with the camera position ? Edited by Anddos

Share this post


Link to post
Share on other sites
Advertisement
I strongly suggest to use HLSL. Writing shader with assembly is rather complicated / outdated.

c0 refers to the float4 at constant 0 (and in this case the c1,c2,c3 are needed too for the m4x4 command).

If you put a world * view * projection matrix to the constants c0-c3, the vertex shader will transform the position from object space to projection space.

Yes, the vertex shader could be used to draw a first person weapon, or any other object. Although the output will be rather dull since no normals or vertex coordinates are outputted.

FPS weapon doesn't differ from any other similar object in the 3d space. In order to draw it, you'll need a transformation matrix for it. So the question is, how to get one.

For this kind of simple case, you could for example use the camera look at direction to make the weapon point at desired direction. Then you could use the position of the camera with a little downward offset, to make the weapon follow your camera.

Remember that the view and projection matrices are rather constant for the frame, you'll need just to calculate the world matrix for the fps weapon.

Cheers!

Share this post


Link to post
Share on other sites
Writing it in assembler would be good experience though, and once you understand how to write a shader, it will be much easier to understand how they work. smile.png

Share this post


Link to post
Share on other sites
I'm not so sure that it will be a good experience. The high level shader languages don't contain any complex syntax and are pretty easy to understand how they map to the hardware. Writing ASM on the other hand is difficult (look at the syntax above), takes more time to write, more time to debug etc. and finally may not be any more efficient than the HLSL. The current HLSL optimizers are pretty good too.

Cheers!

Share this post


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

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!