Форум: "Media";
Текущий архив: 2003.06.05;
Скачать: [xml.tar.bz2];
Внизсоздание вершинного шейдера Найти похожие ветки
← →
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 вся ветка
Форум: "Media";
Текущий архив: 2003.06.05;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.009 c