DevMaster.net Forums
[[ Home | Forums | 3D Engines Database | Wiki | Articles/Tutorials | Game Dev Jobs | IRC Chat Network | Contact Us ]]

Go Back   DevMaster.net Forums > Programming & Development > Graphics Theory & Programming
User Name
Password
Register FAQ Members List Search Today's Posts Mark Forums Read

Reply
 
Thread Tools Search this Thread Display Modes
Old 11-06-2009, 03:26 AM   #1
rouncer
Senior Member
 
rouncer's Avatar
 
Join Date: Mar 2006
Location: perth
Posts: 883
Default Point list point sprites

Can I create an ordinary point list and expand it into triangles then project and create billboards?

Ive written a bit of code and its compiling, its just not outputing anything...

What would be the best way to go about this, and am I doing it the wrong way?
___________________________________________
Do you say-> "C plus plus" or "C increment."
rouncer is offline   Reply With Quote
Old 11-06-2009, 04:26 AM   #2
rouncer
Senior Member
 
rouncer's Avatar
 
Join Date: Mar 2006
Location: perth
Posts: 883
Default Re: Point list point sprites

heres my disfunctioning shader, is there anything obviously wrong with it?

Code:
float3 right; float3 up; float voxradius; struct vs_outputm { float4 pos : SV_POSITION; //position using the texture coordinates float4 col : TEXCOORD0; float4 nor : TEXCOORD1; }; struct ps_outputm { float4 col; }; vs_outputm vsm(float4 pos : POSITION, float4 col : DIFFUSE, float4 nor : SPECULAR) { vs_outputm output; output.pos=pos; output.col=col; output.nor=nor; return output; } [maxvertexcount(4)] void gsm(point vs_outputm input[1], inout TriangleStream<vs_outputm> TriStream) { vs_outputm output; output.pos=mul(input[0].pos-right*voxradius+up*voxradius,wvp); output.nor=input[0].nor; output.col=input[0].col; TriStream.Append(output); output.pos=mul(input[0].pos+right*voxradius+up*voxradius,wvp); output.nor=input[0].nor; output.col=input[0].col; TriStream.Append(output); output.pos=mul(input[0].pos+right*voxradius-up*voxradius,wvp); output.nor=input[0].nor; output.col=input[0].col; TriStream.Append(output); //output.pos=mul(input[0].pos+right*voxradius-up*voxradius,wvp); //output.nor=input[0].nor; //output.col=input[0].col; //TriStream.Append(output); TriStream.RestartStrip(); } ps_outputm psm(vs_outputm vso) : SV_TARGET { ps_outputm output; float3 nor; nor.x=vso.nor.r*2-1; nor.y=vso.nor.g*2-1; nor.z=vso.nor.b*2-1; float light=dot(-ldir,vso.nor); output.col=vso.col*light; output.col.a=1.0f; return output; } technique10 mapdraw { pass P0 { SetVertexShader(CompileShader(vs_4_0, vsm())); SetGeometryShader(CompileShader(gs_4_0, gsm())); SetPixelShader(CompileShader(ps_4_0, psm())); } }

Thanks
___________________________________________
Do you say-> "C plus plus" or "C increment."
rouncer is offline   Reply With Quote
Old 11-06-2009, 06:22 AM   #3
rouncer
Senior Member
 
rouncer's Avatar
 
Join Date: Mar 2006
Location: perth
Posts: 883
Default Re: Point list point sprites

I got it working, the problem is i wasnt getting the w paramater right... again... thank you drive though.
___________________________________________
Do you say-> "C plus plus" or "C increment."
rouncer is offline   Reply With Quote
Old 11-06-2009, 06:25 AM   #4
Wernaeh
Senior Member
 
Wernaeh's Avatar
 
Join Date: Aug 2005
Posts: 332
Default Re: Point list point sprites

Just a guess but, ever tried to invert your face verts ?
Perhaps its culling-related ?

Edit:
Dammit, too late

Cheers,
- Wernaeh
___________________________________________
Some call me mathematician, some just call me computer guy. Yet, I prefer the term professional weirdo :)
Wernaeh is offline   Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Forum Jump


All times are GMT -7. The time now is 05:04 PM.


Powered by vBulletin
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.