View more

View more

View more

### Image of the Day Submit

IOTD | Top Screenshots

### The latest, straight to your Inbox.

Subscribe to GameDev.net Direct to receive the latest updates and exclusive content.

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

3 replies to this topic

### #1Anddos  Members

Posted 06 December 2012 - 03:10 PM

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

"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, 06 December 2012 - 03:29 PM.

### #2kauna  Members

Posted 06 December 2012 - 09:03 PM

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!

### #3heavycat  Members

Posted 07 December 2012 - 02:57 AM

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.

### #4kauna  Members

Posted 07 December 2012 - 06:56 AM

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!

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.