Direct3d C# рисование примитивов
От: smaki  
Дата: 07.10.05 13:50
Оценка:
Хочу нарисовать только контур треугольника, тобишь чтоб были только линии, а внутри пусто... но почему-то его заполняет градиентом...

...
public void OnCreateVertexBuffer(object sender, EventArgs e)
        {
            VertexBuffer vb = (VertexBuffer)sender;
            CustomVertex.PositionColored[] verts = (CustomVertex.PositionColored[])vb.Lock(0,0);
            verts[0].X=-1.0f; verts[0].Y=-1.0f; verts[0].Z=0.0f; verts[0].Color = System.Drawing.Color.DarkGoldenrod.ToArgb();
            verts[1].X=1.0f; verts[1].Y=-1.0f ;verts[1].Z=0.0f; verts[1].Color = System.Drawing.Color.MediumOrchid.ToArgb();
            verts[2].X=0.0f; verts[2].Y=1.0f; verts[2].Z = 0.0f; verts[2].Color = System.Drawing.Color.Cornsilk.ToArgb();
            vb.Unlock();
        }
...
...
device.SetStreamSource(0, vertexBuffer, 0);
device.VertexFormat = CustomVertex.PositionColored.Format;
device.DrawPrimitives(PrimitiveType.TriangleList, 0, 1);
...

Может кто подскажет где что менять/исправлять?
Re: Direct3d C# рисование примитивов
От: Аноним  
Дата: 07.10.05 14:09
Оценка:
Здравствуйте, smaki, Вы писали:

S> Хочу нарисовать только контур треугольника, тобишь чтоб были только линии, а внутри пусто... но почему-то его заполняет градиентом...


S>
S>...
S>public void OnCreateVertexBuffer(object sender, EventArgs e)
S>        {
S>            VertexBuffer vb = (VertexBuffer)sender;
S>            CustomVertex.PositionColored[] verts = (CustomVertex.PositionColored[])vb.Lock(0,0);
S>            verts[0].X=-1.0f; verts[0].Y=-1.0f; verts[0].Z=0.0f; verts[0].Color = System.Drawing.Color.DarkGoldenrod.ToArgb();
S>            verts[1].X=1.0f; verts[1].Y=-1.0f ;verts[1].Z=0.0f; verts[1].Color = System.Drawing.Color.MediumOrchid.ToArgb();
S>            verts[2].X=0.0f; verts[2].Y=1.0f; verts[2].Z = 0.0f; verts[2].Color = System.Drawing.Color.Cornsilk.ToArgb();
S>            vb.Unlock();
S>        }
S>...
S>...
S>device.SetStreamSource(0, vertexBuffer, 0);
S>device.VertexFormat = CustomVertex.PositionColored.Format;
S>device.DrawPrimitives(PrimitiveType.TriangleList, 0, 1);
S>...
S>

S>Может кто подскажет где что менять/исправлять?

Ундерстанд ?
Re[2]: Direct3d C# рисование примитивов
От: smaki  
Дата: 07.10.05 14:33
Оценка:
Здравствуйте, Аноним, Вы писали:

S>>...
S>>device.SetStreamSource(0, vertexBuffer, 0);
S>>device.VertexFormat = CustomVertex.PositionColored.Format;
S>>device.DrawPrimitives(PrimitiveType.TriangleList, 0, 1);
S>>...


Да, но если я ставлю PrimitiveType.TriangleFan, то идет та же заливка градиентом
Есть ли способ задавать только цвет линий примитива, допустим, для квадрата (2 треугольника TriangleFan)?
Или придется(рациональнее) рисовать по линиям?
Re: Direct3d C# рисование примитивов
От: DmitryDV Туркмения  
Дата: 08.10.05 10:22
Оценка:
Здравствуйте, smaki, Вы писали:

S> Хочу нарисовать только контур треугольника, тобишь чтоб были только линии, а внутри пусто... но почему-то его заполняет градиентом...

S>...
S>...
S>device.SetStreamSource(0, vertexBuffer, 0);
S>device.RenderState.FillMode = FillMode.Wireframe;
S>device.VertexFormat = CustomVertex.PositionColored.Format;
S>device.DrawPrimitives(PrimitiveType.TriangleList, 0, 1);
S>...
S>[/c#]
S>Может кто подскажет где что менять/исправлять?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.