Главная страница
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.019 c
1-13239
qwerty2
2003-05-23 10:40
2003.06.05
Debugger в Delphi6


1-13294
vitall
2003-05-24 05:55
2003.06.05
данные местоположения курсора в строке(TMemo etc)


6-13350
Opera
2003-04-02 14:41
2003.06.05
Mouse


1-13238
kruzoman
2003-05-27 14:25
2003.06.05
как получить параметры


1-13221
Spider
2003-05-26 17:18
2003.06.05
Кривой компонент не дает снять задачу...