현재 MonoGame으로 게임을 작성 중이며 질감이있는 모양을 그려야합니다. 모서리가 4 개인 다각형을 그리고 싶습니다. 내 모든 렌더링 작업은 spritebatch로 완료됩니다. TriangleStripes를 사용하려고했지만 셰이더에 대한 경험이없고이를 나머지 spritebatch-rendercode와 혼합하는 것이 복잡해 보이기 때문에 잘 작동하지 않습니다. 내가 생각한 한 가지 해결책은 쿼드를 그리고 texturecoordinats로 텍스처를 스트레치하는 것입니다. 어떻게 든 가능합니까? 나는 spritebatch와 관련하여 이것에 대해 뭔가를 찾을 수 없습니다. 누구든지 튜토리얼이 있거나 내 목표를 보관하는 방법을 알고 있습니까?
미리 감사드립니다.
직사각형이 아닌 방식으로 텍스처를 그리려면을 사용할 수 없습니다 SpriteBatch
. 그러나 다각형을 그리는 것도 어렵지 않으며 사용할 수 BasicEffect
있으므로 셰이더에 대해 걱정할 필요가 없습니다. Vertex 및 Index 배열을 설정하여 시작하십시오.
BasicEffect basicEffect = new BasicEffect(device);
basicEffect.Texture = myTexture;
basicEffect.TextureEnabled = true;
VertexPositionTexture[] vert = new VertexPositionTexture[4];
vert[0].Position = new Vector3(0, 0, 0);
vert[1].Position = new Vector3(100, 0, 0);
vert[2].Position = new Vector3(0, 100, 0);
vert[3].Position = new Vector3(100, 100, 0);
vert[0].TextureCoordinate = new Vector2(0, 0);
vert[1].TextureCoordinate = new Vector2(1, 0);
vert[2].TextureCoordinate = new Vector2(0, 1);
vert[3].TextureCoordinate = new Vector2(1, 1);
short[] ind = new short[6];
ind[0] = 0;
ind[1] = 2;
ind[2] = 1;
ind[3] = 1;
ind[4] = 2;
ind[5] = 3;
BasicEffect
표준 셰이더로 사용하면 텍스처, 색상을 그리고 조명을 적용 할 수도 있습니다.
VertexPositionTexture
버텍스 버퍼가 설정되는 방법입니다.
VertexPositionColor
색상 만 원하는 VertexPositionColorTexture
경우 와 둘 다 원하는 경우 사용할 수 있습니다 (텍스처를 색상으로 착색).
ind
배열은 쿼드를 구성하는 두 개의 삼각형을 그릴 주문할 것을 말한다.
그런 다음 렌더링 루프에서 다음을 수행합니다.
foreach (EffectPass effectPass in basicEffect.CurrentTechnique.Passes)
{
effectPass.Apply();
device.DrawUserIndexedPrimitives<VertexPositionTexture>(
PrimitiveType.TriangleList, vert, 0, vert.Length, ind, 0, ind.Length / 3);
}
그게 다야! 이것은 매우 간단한 소개입니다. 저는 이것으로 놀아 볼 것을 제안합니다. 만약 막히면 이것에 대한 많은 튜토리얼과 정보가 있습니다. 구글은 당신의 친구입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다