![]() |
Ответ: Xors3D
http://msdn.microsoft.com/en-us/libr...29(VS.85).aspx
Header Mmsystem.h (include Windows.h) Library Winmm.lib Winmm.lib добавил в список библиотек? |
Ответ: Xors3D
Добавил Winmm.lib и все нормально стало.
|
Ответ: Xors3D
В чем может быть проблема? Почему map не показывается? А если убрать xHideEntity(back_map), то показывается весь back_map, на блице все нормально работает.
int back_map = xLoadAnimMesh("DATA/models/map/map.b3d"); int map = xFindChild(back_map,"Plane02"); xEntityType(map,col_map); xHideEntity(back_map); |
Ответ: Xors3D
Цитата:
нашел чайлд присвоил группу коллизий скрыл загруженную модель Очевидно в результате работы программы мы не увидим модель, что не так? |
Ответ: Xors3D
|
Ответ: Xors3D
Все правильно xHideEntity скрывает указанный объект, и все привязанные к нему.
|
Ответ: Xors3D
есть у кого шейдер, для создания мультяшной графики, рисованной. Вроде технология cell-shading называется... ???
|
Ответ: Xors3D
Тебе нужно в зависимости от угла между нормалью и вектором соединяющим пиксель и камеру красить каким-либо цветом пиксель. Он простой сам по себе шейдер.
Вообще в архиве с хорсом в сэмплах идет ToonShaded Light. Ну можно еще с бесшовной текстурой как-нить по диагонали типа карандашом заштрихованную в какой-то пропорции смешивать. И постэффектом маской все контуры зубчатыми делать. |
Ответ: Xors3D
у меня объект b3d состоит из множества мешей, следовательно там куча тестур. Как мне это обработать, тем более что модель анимационная. И когда я накладываю шейдер, она теряет текстуру
|
Ответ: Xors3D
Накладывать на каждый меш шейдер отдельно и передавать в шейдер соответствующую текстуру
xSetEntityEffect(mesh,Shader); xSetEffectTexture(mesh,"seaside",seaside_tex); А если у тебя именно в меше куча сюрфейсов с отличающимися текстурами, то тебе надо пытаться, что-то замутить с текстурными координатами или в цвете вершин в шейдер дополнительно передавать данные о порядковом номере текстуры для текущей вершины и в шейдер загружать кучу текстур и учить его думать чо чем красить. Лучше въехать в шейдеры хоть чу-чуть и уже планировать более рациональное их использование. Написанные кем то шейдеры твою игру не спасут. Вот. |
Ответ: Xors3D
Цитата:
|
Ответ: Xors3D
Цитата:
|
Ответ: Xors3D
Цитата:
|
Ответ: Xors3D
ShaderModel 4 / Шейдеры четвертой версии
|
Ответ: Xors3D
Ну если в кратце и врать, то.
в шейдере у тебя есть входные данные - этакие переменные и константы. Есть первоначальный обработчик этих данных который нужным образом совместит твои данные и модель которую ты красить собрался. Это вершинный шейдер. В нем ты в общем случае должен для каждой вершины сформировать данные в которых ты для этой вершины укаюешь ее текстурные координаты и нормаль. Ну и еще можно все что угодно туда вписать необходимое для извращений. вот когда все вершины получили свои правильные по мнению видеокарты данные происходит переход на нижний уровень где уже непосредственно рисуются точки которые ты увидешь на экране. Это называется пиксельный шейдер. И по сути он работает уже не с моделью, а только с одним ее треугольником. Из вершинного шейдера ты передал текстурные координаты вершинам треугольника и командой sampler2d() можешь приказать шейдеру из какой текстуры узнать какая точкой той текстуры попадает в это место. Это есть наш цвет с которым мы должны работать дальше. Еще в вершинном шейдере мы подготовливаем данные о нормали поверхности. Которые магическим образом передаются в текущий пиксель. Еще мы можем в шейдер этакой глобальной переменной передать вектор вдоль которого светит свет. Дальше командой normalize() можно сделать векторы нормали и направления света длинной 1. И есть команда dot() скалярное произведение векторов. Котрая при нормализации входных векторов вернет косинус угла между ними. И вот тут происходит магия. У нас есть из сэмплера цвет пикселя от текстуры. Есть косинус угла между нормалью и повернутым обратно светом, этот косинус является той. Частью света которую отразит наш пиксель прямо нам в глаз. Перемножаем вектор цвета но косинус получаем четырехмерный вектор цвета который и есть наш пиксель для которого посчитан правильный цвет и затенение. сорри за мой хранйцузский акцент, пишу с мобилы. |
Часовой пояс GMT +4, время: 13:56. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot