Directx 9 текстурирование объекта несколькими текстурами
как реализовать сабж.
Device->SetTransform(D3DTS_WORLD, &p); Device->SetStreamSource(0, VB, 0, sizeof(Vertex)); Device->SetIndices(IB); Device->SetFVF(Vertex::FVF); Device->SetTexture(0, _tex0); Device->DrawIndexedPrimitive ............. Device->SetTexture(0, _tex1); Device->DrawIndexedPrimitive ............. так?? |
Ответ: Directx 9 текстурирование объекта несколькими текстурами
скорее так
Device->SetTransform(D3DTS_WORLD, &p); Device->SetStreamSource(0, VB, 0, sizeof(Vertex)); Device->SetIndices(I; Device->SetFVF(Vertex::FVF); Device->SetTexture(0, _tex0); Device->SetTexture(1, _tex1); Device->DrawIndexedPrimitive ............. а вообще не помню точно, юзаю ID3DXEffect |
Ответ: Directx 9 текстурирование объекта несколькими текстурами
нет тут не стоит использовать слои текстур, может у меня на один объект состоящий из 100500 граней, нужно наложить 100500 текстур на каждую грань :-D
|
Ответ: Directx 9 текстурирование объекта несколькими текстурами
задача нечётко поставлена, скажи что хочешь сделать %)
|
Ответ: Directx 9 текстурирование объекта несколькими текстурами
Есть объект - 1 меш. В 3d maxe на него назначено много текстур, штук 20. Я загружаю все в один буфер вершин с индексами, и нужно юзать эти текстуры.
|
Ответ: Directx 9 текстурирование объекта несколькими текстурами
т.е. меш в максе состоит из полигонов с разными текстурами? ну да, тогда обычно рендерят кадый кусок отдельным дипом, как вроде ты и написал в первом посте. собственно в blitz3d/xors3d понятие surface и является такой частью меша с одной текстурой, они рендерятся каждый отдельным дипом.
|
Ответ: Directx 9 текстурирование объекта несколькими текстурами
Все правильно делаешь. Сам делаю по такому же принципу, только у меня удобнее все это сделано.
|
Ответ: Directx 9 текстурирование объекта несколькими текстурами
еще вопрос. При написании движка с нуля, изначально построить систему блендинга и освещения на основе шейдеров, и забить на реализацию стандартных DX совских методов, или все же их тоже включить в двиг.
Просто у меня в планах, вообще не реализовывать всякую устаревшую чушь, а сразу делать deferred shading, и колиззии, выбор объектов и т.п. на буллете. Познания в DX пока что ничтожные, и решаю не заострять внимание на неактуальные вещи, а сразу копать в сторону шейдеров Еще вопросик. Как получить глобальную позицию, поворот, исходя из матрицы? |
Ответ: Directx 9 текстурирование объекта несколькими текстурами
Не делай никакой реализации FFP ("всякой старой хрени"), а делай Только шейдеры.
Например сравнительно молодой GLES 2.0 - также не имеет Никакого FFP вообще, и всё на шейдерах, что имхо - очень круто. |
Ответ: Directx 9 текстурирование объекта несколькими текстурами
>>Как получить глобальную позицию, поворот, исходя из матрицы?
Кури матан =) И поймешь что практически не реально +) |
Ответ: Directx 9 текстурирование объекта несколькими текстурами
Я пытаюсь изучить DX, что кстати получается, и замутить очень простой двиг для мелких игрушек типа 8bit story на шейдерах полностью, и встроеной физике (буллет, оде, хз еще не выбрал).
охренеть если не реально, тогда как посчитать такую вещь: есть объект на него назначен чилд. чилд смещен на какоето расстояние, объект родитель повернуть, чилд уже имеет другие позиции, как их узнать. |
Ответ: Directx 9 текстурирование объекта несколькими текстурами
Цитата:
Позиция чайлда - будет зависеть от его матрицы и матрицы отца. Перемножаешь матрицу чайлда на матрицу отца - будет результат, который имеет все глобальные данные чайлда. Я в этом нууб, но про перемножение матриц, верно? |
Ответ: Directx 9 текстурирование объекта несколькими текстурами
про перемножение да. тоесть при перемножении я получаю новую матрицу, которая означает позицию чилда. Но как же вытащить XYZ
X3025 Global variables are implicitly constant - это сообщение выдает компилятор шейдеров при компиляции шейдера. Что за хрень знает ктонить? Код:
extern matrix WorldViewMatrix; |
Ответ: Directx 9 текстурирование объекта несколькими текстурами
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
первый раз такое вижу, обычно матрицы объявляют как float4x4, векторы как float3/float4 |
Ответ: Directx 9 текстурирование объекта несколькими текстурами
Охренеть, шейдерами так вообще пол директ икса заменить можно
Цитата:
|
Часовой пояс GMT +4, время: 22:32. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot