как перейти от списка вершин дальновидного к вершине позиции цвета текстуры данных вершины

Моя проблема началась, когда я делал пример текстуры для вершин (https://gamedev.stackexchange.com/questions/30050/building-a-shape-out-of-an-texture-with-farseer), тогда я всплываю, если возможно передать эту "вершину дальновидного" "к данным вершин, которые можно использовать в DrawUserIndexedPrimitives, чтобы подготовить вершины к модификации на альфа-текстурах.

Пример: вы рисуете текстуру (с прозрачностью в некоторых местах) поверх данных вершины полосы треугольника, чтобы вы могли манипулировать точками, чтобы искажать изображение следующим образом: http://www.tutsps.com/images/Water_Design_avec_Photoshop/Water_Design_avec_Photoshop_20.jpg

Как вы можете видеть, буква A была просто обычным изображением в файле PNG, но после преобразования, которое я смотрю, ее можно использовать для искажения изображения.

пожалуйста, любое решение дайте какой-нибудь код или ссылку на учебник, который может помочь мне разобраться в этом ...

Спасибо всем!!

П. Я думаю, что основная проблема заключается в том, как сделать indexData и textureCoordination только из вершин, которые создает PolygonTools.CreatePolygon.


person son1cman    schedule 18.06.2013    source источник


Ответы (1)


Полигон TexturedFixture = 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);

Это поможет

person son1cman    schedule 18.06.2013