Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.11.2011, 23:50   #1
Warn
Форумчанин
 
Аватар для Warn
 
Регистрация: 03.11.2011
Сообщений: 230
По умолчанию Вопросы по Direct3D9

Рисую треугольник в 2д, и столкнулся с тем что поначалу цвета которые я задавал для вершин треугольника не применялись, а брался только цвет из первой вершины всего треугольника (красный). все думал почему же это так... и решил изменить... rhw c 0 на 1 для каждой вершины. и о чудо появились цвета и интерполяция между вершинами. у меня вопрос что это было? и почему rhw влияет на цвет, когда в структуре есть поле color для этого.

код. для понятия сути происходящего.
Код:
unit VisualPrimitiveTypes;

interface
uses Direct3D9, DXTYPES, D3DX9, windows;

const FVF_Vertex2D:Cardinal = D3DFVF_XYZRHW or D3DFVF_DIFFUSE;
type Vertex2D=record
	x, y, z, rhw : Single;
	COLOR : DWORD;
  end;
  PVertex2D = ^Vertex2D;


  procedure SetVertex(var v : Vertex2D; x, y, z : Single; Color : DWORD); inline;
  procedure InitTris();
  procedure DrawTris();

var
	tris:array[0..2] of Vertex2D;

implementation
uses App, Graph3D;

procedure InitTris();
begin
	SetVertex(tris[0], 500, 0, 0, D3DCOLOR_XRGB(0, 0, 255)); //1я вершина
	SetVertex(tris[1], 900, 700, 0, D3DCOLOR_XRGB(0, 255, 0));
	SetVertex(tris[2], 0, 700, 0, D3DCOLOR_XRGB(255, 0, 0));
end;

procedure DrawTris();
begin
	device.SetFVF(D3DFVF_XYZRHW or D3DFVF_DIFFUSE);
  device.DrawPrimitiveUP(D3DPT_TRIANGLELIST, 1, tris, sizeof(tris[0]) )

end;


procedure SetVertex(var v : Vertex2D; x, y, z : Single; Color : DWORD);
begin
	v.x:=x;
	v.y:=y;
	v.z:=z;
  v.rhw :=1;
	v.COLOR:=color;
end;

end.
Warn вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Direct3D9, программная растеризация _-Re@l-_ Gamedev - cоздание игр: Unity, OpenGL, DirectX 6 01.09.2011 19:21
Direct3D9, вращение камеры. _-Re@l-_ Gamedev - cоздание игр: Unity, OpenGL, DirectX 3 06.04.2011 20:49
Текстуринг в Direct3D9 alexprey Мультимедиа в Delphi 5 26.08.2010 22:17
direct3d9. Камера. VC++. Crivel Gamedev - cоздание игр: Unity, OpenGL, DirectX 4 08.07.2010 16:36
Direct3D9 VintProg Gamedev - cоздание игр: Unity, OpenGL, DirectX 15 02.11.2009 10:54