HLSL
можно ли проверить пересечение двух обьектов в шейдере второго поколения.
Зачем усложнят шейдер и проверять столкновение объектов в нём, гораздо легче будет проверить до вызова шейдера и потом уже передавать в шейдер пересеклись ли 2 объекта или нет, тем более можно даже поискать физический движок, но если хочешь в шейдере то передавай туда координаты центров объектов, радиус ограничивающих сфер(можно прямоугольников, цилиндров и т.п.) и проверяй.
Если зто не возможно через шейдер,то как зто реализовать через DirectX 9 ?
в HLSL есть функция
distance(a, b),но как ее использовать .
Как получить 2 точки , если шейдер включаются для каждой точки отдельно и С++ включается раз для всех точек обьекта ?
.2 Не стоит усложнять обработку столкновений, т.е. не надо сравнивать каждый полигон с каждым, если надо проверить персонажа с землёй то заключаешь персонажа в ограничивающую сферу и проверяешь входит ли хоть одна вершина земли в эту сферу.
.3 Через DirectX это не реализуешь, можно только использовать векторы из DX'са.
Надо просто обрабатывать физику перед рендером и всё.
.4 Кури книгу, см .1
Как сохранить информацию про то,пересекает ли хоть одна точка сферу,если она пересекает ?
Не пойму где сохранить, поподробней расскажи что нужно и тогда сегодня отвечу.
Мне понятно как сделать проверку столкновений сферы с поверхностью теоретический,но практический есть одна проблема.
Я могу отследить попадает ли точка в сферу и записать информацию о этом ( float a = true ) , но при следующем запуске шейдера этой информации уже не будет,а соответственно этой информации не будет когда шейдер будет обрабатывать персонажа.
Или я совсем нечего не понял :rolleyes:
А если сохранить флажок пересечения в глобальной переменной? Извиняюсь, HLSL не знаю, все больше с GLSL. Там это легко реализуется.
Все проблема решена,всем огромное спасибо .