как да преминете от списък с върхове на farseer към vertexpositioncolortexture data vertex

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

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

Както можете да видите, буквата А беше просто нормално изображение в PNG файл, но след преобразуването я гледам, че може да се използва за деформиране на изображението.

моля, всяко решение, дайте някакъв код или връзка към урок, който може да ми помогне да разбера това...

Благодаря на всички!!

П.Д. Мисля, че основният проблем е как да направя indexData и textureCoordination само от върховете, които PolygonTools.CreatePolygon прави.


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


Отговори (1)


TexturedFixture полигон = fixture.UserData като 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