如何从farseer顶点列表传递到vertexpositioncolortexture数据顶点

时间:2013-06-18 08:52:56

标签: xna textures vertex farseer

我的问题开始时,我正在做纹理到顶点的例子(https://gamedev.stackexchange.com/questions/30050/building-a-shape-out-of-an-texture-with-farseer)然后我弹出,如果它的posible将这个“farseer顶点”传递给可以在DrawUserIndexedPrimitives中使用的顶点数据,以便拥有顶点准备修改alpha纹理。

实施例: 您可以在三角形条带顶点数据上绘制纹理(在某些位置具有透明度),以便您可以操纵这些点以便像这样处理图像: http://www.tutsps.com/images/Water_Design_avec_Photoshop/Water_Design_avec_Photoshop_20.jpg

正如您所看到的,A字母只是PNG文件上的普通图像,但在转换后,我可以使用它来分辨图像。

PLZ任何解决方案都会提供一些代码或指向教程的链接,可以帮助我弄清楚这个......

谢谢大家!!

Pd积。我认为主要问题是如何仅从PolygonTools.CreatePolygon所做的顶点制作indexData和textureCoordination。

1 个答案:

答案 0 :(得分:0)

TexturedFixture polygon = fixture.UserData as TexturedFixture;

                    effect.Texture = polygon.Texture;
                    effect.CurrentTechnique.Passes[0].Apply();

                    VertexPositionColorTexture[] points;
                    int vertexCount;
                    int[] indices;
                    int triangleCount;

                    polygon.Polygon.GetTriangleList(fixture.Body.Position, fixture.Body.Rotation, out points, out vertexCount, out indices, out triangleCount);

                    GraphicsDevice.SamplerStates[0] = SamplerState.AnisotropicClamp;
                    GraphicsDevice.RasterizerState = new RasterizerState() { FillMode = FillMode.Solid, CullMode = CullMode.None, };

                    GraphicsDevice.DrawUserIndexedPrimitives<VertexPositionColorTexture>(PrimitiveType.TriangleList, points, 0, vertexCount, indices, 0, triangleCount);

这样就可以了解