Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.05;
Скачать: CL | DM;

Вниз

создание вершинного шейдера   Найти похожие ветки 

 
Garrett   (2003-02-23 00:24) [0]

Замучался я с ними. Need help :-)
Мне даже не создать вершинный шейдер. Непонятно, какие параметры передавать и почему неправильно то, что я пишу в CreateVertexShader.

вот код:

function LoadVertexShader(ShaderFile: AnsiString): HRESULT;
var MS: TMemoryStream;
VProg: Array[0..127] of LongWord;
VProgAddr: LongWord;
dwDecl: array [0..2] of DWORD;
dwDcl: LongWord;
begin
dwDecl[0] := D3DVSD_STREAM(0);
dwDecl[1] := D3DVSD_REG(0, D3DVSDT_FLOAT3);
dwDecl[2] := D3DVSD_END;

dwDcl := LongWord (@dwDecl[0]);
VProgAddr := LongWord (@VProg[0]);

MS := TMemoryStream.Create;
try
MS.LoadFromFile(ShaderFile);
MS.Read(VProg[0], MS.Size);
Result := d3ddev.CreateVertexShader(dwDecl[0], @VProgAddr, HShader, 0);
finally
MS.Free;
end;
end;


Сперва были проблемы с загрузкой программы. Возникал эксепшн. Только передавая программу таким образом получил Invalid Parameters в HRESULT. Теперь тупик. Пример с http://www.direct3d.net не помог.


 
Garrett   (2003-02-23 02:27) [1]

Так, на шаг вперёд продвинулся. Загрузка произошла успешно сменой параметров dwDecl[0] на @dwDecl[0] и @VProgAddr на @VProg[0]. Но что-то ничего не работает... странно.
У меня есть 4 вершины и 2 треугольника. Если не использовать шейдер, то всё рисуется нормально.. но если перевесить работу на шейдер, сразу нифига не рисуется. или рисуется, но не то

сам шейдер такой:

vs.1.0
m4x4 oPos, v0, c0
mov oD0, c8




Страницы: 1 вся ветка

Текущий архив: 2003.06.05;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.013 c
11-13111
VS2001
2002-09-14 08:57
2003.06.05
Как в KOL подключать DLL скомпилированные в VCL?


8-13334
Alexanders
2003-02-22 13:28
2003.06.05
Проигрывание и навигация по wav файлу из памяти


1-13234
sosv
2003-05-26 14:44
2003.06.05
URL в Help-файле


7-13493
Игорь_Г
2003-03-27 01:15
2003.06.05
Работа с драйверами


3-13018
rosl
2003-05-16 09:35
2003.06.05
сумма поля