![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопросы по Direct3D (JEDI)
Kobik © (2004-11-19 19:43:00)Собственно у меня 2 вопроса:
1) Можно ли в одной сцене параллельно использовать текстуры и примитивы? Если да, то как? (создавать 2 буфера вершин с разными типами, или все можно запихнуть в один?)
2) На пару треугольников наложена текстура. У нее надо динамически менять прозрачность. Обязательно ли для каждой степени прозрачности создавать отдельную текстуру, или для этого есть специальный параметр?
Kobik (2004-11-21 19:08:00) [1]2Sapersky большое спасибо за ответ.
Еще у меня такой вот глюк - после создания текстур любая работа с TStream (из стандартной библиотеки Classes.pas) приводит к "Access violation" в D3d8.dll. А до создания текстур все работает. Может кто знает че за ботва?
Sapersky (2004-11-20 12:12:00) [2]1) Да ничего страшного. Просто лишние параметры не будут использоваться. Память, конечно, расходуется, но в данном случае не так уж и много. И с т.з. производительности это лучше, чем переключать буферы и форматы вершин.
2) Ну например:
Type
TMyVertex = record
x, y, z : Single;
color : DWord;
u, v : Single;
end;
Const
MyVertexDesc = D3DFVF_XYZ or D3DFVF_DIFFUSE or D3DFVF_TEX1;
Kobik (2004-11-20 07:54:00) [3]1) Я имею ввиду что часть треугольников текстурированные, а чать просто окрашенные. Но, получается, что их вершины имеют разные параметры. А при CreateVertexBuffer можно указать только 1 тип.
2) Т.е кроме параметров X, Y, Z, U, V еще задавать Color? А какой тип тогда надо делать в SetVertexShader?
Sapersky (2004-11-20 00:47:00) [4]1) Зависит от количества примитивов (точек-линий?) и текстур (текстурированных треугольников?). Если всё влезает в один буфер - можно (и лучше) использовать один (за исколючением point sprites, там спец. тип буфера).
2) Можно менять цвет треугольников (прозрачность цвета треугольников). Или есть специальный режим блендинга с фиксированной альфой, которая задаётся через SetRenderState/SetTextureStageState (что-то там с TFACTOR).