| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > Метод Z - буфера! Отрисовка DirectX! |
| Автор: PRF 14.5.2009, 00:29 |
| Здравствуйте. У меня есть каркасная сцена, для отрисовки я использую DirectX, только для отрисовки! Зачем я это делаю, лучше не спрашивайте, предмет у нас компьютерная графика, для отрисовки можно было использовать все что хочешь! Вот есть задание: 1) удалить нелицывые грани полигональных моделей (удалять их или просто не рисовать , разницы нет) 2) отсечение не проецируемых ребер Хочу использовать алгоритм Z - буфера. Но как применить его к Directx я не знаю! Я для отрисовки фигуры использую индексы, а алгоритм Z буфера предполагает проход по всей картинки(по экрану), я так понял, по пикселям и присвоения цвета тому пикселю которому надо)) ну так в кратце, короче завязано на всем экране и цвете. А если я для отрисовки использую DirectX , да еще притом использую индексы. Есть какие нибудь идея как можно реализовать Z буфер? просто идейку подкиньте пожалуйста. Спасибо. |
| Автор: BorisVorontsov 14.5.2009, 18:01 |
| Какая разница, индексированные у тебя примитивы или нет? Индексация просто оптимизирует меш. Раз ты используешь DirectX, то он у тебя уже реализован, и по умолчанию используется. Если хочется им управлять, D3DRS_ZFUNC в помощь |
| Автор: PRF 14.5.2009, 18:14 |
| Мне надо самому написать удаление нелицевый граней. Алгоритм я взял Z - буфера. Я знаю, что он есть в directx уже. Вот и спрашиваю, как вообще его можно реализовать, там же вроде бы надо иметь цветовую составлявляющую каждого пикселя экрана.. |
| Автор: PRF 15.5.2009, 21:15 |
| ммм.. спасибо, ага я тут уже почитал, что все это аппаратно реализуется, z - буфер, и программно это будет плохо сделать! а не подскажите тогда алгоритм удаления не лицевых граней, я вот тут вроде бы алгоритм Робертса нашел, но что то я его не понимаю???. (( |