Главная страница
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.035 c
1-13251
Вячеслав Белкин
2003-05-21 14:20
2003.06.05
Как вызвать SetLength из процедуры на ассемблере


1-13210
jack100
2003-05-27 11:43
2003.06.05
Раскладка клавиатуры


9-12982
Анат
2002-12-15 12:22
2003.06.05
ИскуственныйИнтелект


3-13100
Pat
2003-05-18 23:24
2003.06.05
Опять Access+ADO под ХР


1-13219
dfgdfgsdg
2003-05-26 23:08
2003.06.05
Активация формы?