![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2009
Сообщений: 28
|
Помогите разобраться:
Делаю простой 3D куб, стенками которого являются Sprite объекты. BackFace Culling реализован, так: Есть массив хранящий в себе Vector3D. Каждый такой вектор представляет собой нормаль одной из сторон куба. Normals[0] = new Vector3D( 0, 0, -1); Normals[1] = new Vector3D( 0, 0, 1); Normals[2] = new Vector3D( 0, 1, 0); Normals[3] = new Vector3D( 0, -1, 0); Normals[4] = new Vector3D( 1, 0, 0); Normals[5] = new Vector3D(-1, 0, 0); for (var i:int = 0; i < 6; ++i) { if (transform.getRelativeMatrix3D(stage).deltaTransformVector(Normals[i]).z >= 0) Faces[i].visible = false; else Faces[i].visible = true; } Проблема в том, что иногда видны стенки, которые должны быть спрятаны. Может, есть другой какой метод? Добавлено через 6 минут Хм... помоему я решил проблему заменив проверку 0 на -0.1но вопрос про другой метод остается |
|
|||||
|
http://www.bytearray.org/?p=468
еще вариант не выключать видимость, а сортировать глубину спрайтов в зависимости от расстояния до наблюдателя: http://theflashblog.com/?p=470 http://silin.fatal.ru/#AS3/FP10/cube3D |
|
|||||
|
Регистрация: Jun 2009
Сообщений: 28
|
Спасибо за ссылки
Добавлено через 3 минуты Кстати, может заодно подскажите как с алиасингом бороться |
|
|||||
|
Регистрация: Jun 2009
Сообщений: 28
|
Я уже пробовал в Bitmap всю статику перевести - не сильно помогло
Видимо лучше избегать таких ситуаций |
![]() |
![]() |
Часовой пояс GMT +4, время: 10:09. |
|
|
« Предыдущая тема | Следующая тема » |
|
|