Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Treue Seele
C#-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 |
List lstVertices = new List();List lstIndices = new List()short idx = 0; for (int i = 0; i < lstParticles.Count; i++) {VertexPositionNormalTexture vert1 = new VertexPositionNormalTexture(lstParticles[i].Location + new Vector3(-0.15f, 0.15f, 0.0f), Vector3.Forward, Vector2.Zero); lstVertices.Add(vert1);VertexPositionNormalTexture vert2 = new VertexPositionNormalTexture(lstParticles[i].Location + new Vector3(-0.15f, -0.15f, 0.0f), Vector3.Forward, Vector2.UnitY); lstVertices.Add(vert2);VertexPositionNormalTexture vert3 = new VertexPositionNormalTexture(lstParticles[i].Location + new Vector3(0.15f, -0.15f, 0.0f), Vector3.Forward, Vector2.One); lstVertices.Add(vert3);VertexPositionNormalTexture vert4 = new VertexPositionNormalTexture(lstParticles[i].Location + new Vector3(0.15f, 0.15f, 0.0f), Vector3.Forward, Vector2.UnitX); lstVertices.Add(vert4); lstIndices.Add(idx); lstIndices.Add((short)(idx + 2)); lstIndices.Add((short)(idx + 1)); lstIndices.Add(idx); lstIndices.Add((short)(idx + 3)); lstIndices.Add((short)(idx + 2));idx += 4; } if (lstVertices.Count > 0) {fx.Parameters["World"].SetValue(World);fx.Parameters["View"].SetValue(View);fx.Parameters["Projection"].SetValue(Projection);fx.Parameters["tex"].SetValue(ParticleImage); fx.CurrentTechnique.Passes[0].Apply(); grdev.DrawUserIndexedPrimitives(PrimitiveType.TriangleList, lstVertices.ToArray(), 0, lstVertices.Count, lstIndices.ToArray(), 0, lstIndices.Count / 3); } |
HLSL-Quelltext |
|
1 2 3 4 5 6 7 8 |
VertexShaderOutput VertexShaderFunction(VertexShaderInput input) {VertexShaderOutput output; float4 worldPosition = mul(input.Position, World);float4 viewPosition = mul(worldPosition, View); output.Position = mul(viewPosition, Projection);output.Texture = input.Texture; output.Normal = normalize(mul(input.Normal, World)); return output; } float4 PixelShaderFunction(VertexShaderOutput input) : COLOR0 { float4 texcol = tex2D(texSampler,input.Texture);if (texcol.a == 0) { discard; } return texcol; } |
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »LInsoDeTeh« (28.10.2012, 19:07)
Treue Seele
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Spiele Programmierer« (28.10.2012, 19:30)
Treue Seele
C#-Quelltext |
|
1 2 3 4 5 6 |
DepthStencilState dscopy = GraphicsDevice.DepthStencilState;DepthStencilState ds = new DepthStencilState();ds.DepthBufferWriteEnable = false; //Andere Einstellungen für den DS vornehmen GraphicsDevice.DepthStencilState = ds; //Partikel rendern GraphicsDevice.DepthStencilState = dscopy; |
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »LInsoDeTeh« (29.10.2012, 20:17)
Werbeanzeige