0

私は 3D から始めたばかりなので、事前に変換されたものを画面に描画することについて質問があります。

いくつかのチュートリアルを使用して、事前に変換された形式で色付きのポリゴンを描画する方法を理解できましたが、それらをテクスチャリングする方法を理解できません...それは可能ですか? もしそうなら、どのように?

私が今持っているもの:

private void TestVertices()
{
 vertices = new VertexPositionColor[3];
 vertices[0].Position = new Vector3(-0.5f, -0.5f, 0f);
 vertices[0].Color = Color.Red;
 vertices[1].Position = new Vector3(0, 0.5f, 0f);
 vertices[1].Color = Color.Green;
 vertices[2].Position = new Vector3(0.5f, -0.5f, 0f);
 vertices[2].Color = Color.Blue;
}

protected override void Draw(GameTime gameTime)
{
     device.Clear(Color.DarkSlateBlue);
     effect.CurrentTechnique = effect.Techniques["Pretransformed"];
     foreach (EffectPass pass in effect.CurrentTechnique.Passes)
     {
         pass.Apply();
         device.DrawUserPrimitives(PrimitiveType.TriangleList, vertices, 0, 1, VertexPositionColor.VertexDeclaration);
     }
     base.Draw(gameTime);
}
4

1 に答える 1

1

の代わりに頂点にVertexPositionColor使用し、メンバーを各軸で 0 から 1 の間の値に設定します。VertexPositionColorTextureTextureCoordinate

描画するときGraphicsDevice.Texture[0]は、使用したいテクスチャに設定してください。

ピクセル シェーダーが次のように動作することを確認します。

// in the header:
sampler myTexture : register(s0);

// in your shader function:
float4 outputColor = input.Color * tex2D(myTexture, input.TexCoord);

を使用している場合は、 を使用し、をテクスチャに設定し、を設定BasicEffectすることと同等です。VertexPositionColorTextureBasicEffect.TextureBasicEffect.TextureEnabled = true

于 2012-09-12T08:05:30.170 に答える