Форум: "Игры";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];
Вниз
Корявая прорисовка (Direct3D) Найти похожие ветки
← →
VolanD666 (2004-12-01 15:43) [0]Здрасти, программеры.
Вот начал писать свою игру. Типа ходит чувак (от первого лица) по коридору. И все бы хорошо, вот только наверху у стенок какие то зубцы рисуются, а если стенку сделать выше, то зубья становятся острее.
:-O.
← →
MeF Dei Corvi © (2004-12-01 18:54) [1]
> какие то зубцы рисуются
Дык криво стены рисуешь... Треугольники лишние.
← →
XProger © (2004-12-01 18:56) [2]Либо слишком большие числа используешь :)
← →
XProger © (2004-12-01 18:57) [3]Я так понял - рачь идёт о "Z-Fighting". Что-то вроде совпадения глубины в Z-Buffer"е
← →
MeF Dei Corvi © (2004-12-01 19:05) [4]
> VolanD666 (01.12.04 15:43)
Поясни конкретнее о чем речь. Можно скриншотом.
← →
VolanD666 (2004-12-02 05:32) [5]Не стены рисуются нормально (треугольников хватает). Раньше все работало нормально, но как только изменил ближнюю прорисовку:
D3DXMatrixPerspectiveFovLH (&matProj, D3DX_PI/4, 1.0f, 0.001f, 1000.0f);
. Наверху у стен появились искажения.
← →
NailMan © (2004-12-02 10:20) [6]VolanD666
Нельзя такое значение в near задавать - теряется точность работы Z-buffer.
Как правило принято устанавливать nearclip в 1.0
---
WBR, NailMan aka 2:5020/3337.13
← →
VolanD666 (2004-12-02 13:25) [7]А вот, мой знакомый писал на Delphi и у него все путем.
← →
Darthman © (2004-12-02 13:30) [8]//А вот, мой знакомый писал на Delphi и у него все путем.
Ему повезло, у него видеокарточка была другая.
Ты посчитай сколько у тебя градаций получается от 00.1 до 1000? Ну с шагом 0.01 это выходит минимум 100000 градаций буфера. МИНИМУМ, карточка с этим не справляется. Меняй ближнее отсечение на 1.0
← →
VolanD666 (2004-12-02 13:53) [9]А тогда при подходе к стене можно будет посмотреть за нее.
> Ему повезло, у него видеокарточка была другая.
У меня его откомпиленый проэкт идет и все пашет.
← →
Sapersky (2004-12-02 14:09) [10]У меня его откомпиленый проэкт идет и все пашет.
Может, он использует 24(32)-битный Z-буфер, а у тебя 16-битный?
← →
Sapersky (2004-12-02 15:28) [11]Хотя нет, увеличение разрядности не поможет.
Ты посчитай сколько у тебя градаций получается от 00.1 до 1000? Ну с шагом 0.01 это выходит минимум 100000 градаций буфера
Даже хуже.
http://www.mvps.org/directx/articles/using_w-buffers.htm
Если посчитать, как там написано, то получается, что 99.9% точности Z-буфера в данном случае тратится на интервал 0.001..1
Можно, конечно, использовать W-буфер, но он поддерживается не всеми картами, так что лучше ограничить расстояние, на которое можно подходить к стене (зачем 0.001? Если это метры - то вряд ли кто-то сможет подойти к стене на 1 мм :)).
← →
VolanD666 (2004-12-03 14:23) [12]Пробовал менять это число на 2.0:
D3DXMatrixPerspectiveFovLH (&matProj, D3DX_PI/4, 1.0f, 0.001f, 1000.0f);.
Ничего не изменилось. :-(
← →
Sapersky (2004-12-03 18:32) [13]1) В силу особенностей математики Z-буфера точность при задании NearPlane < 1 уменьшается очень сильно. Примерное представление о том, какой интервал на самом деле задаётся, можно получить переставив все ноли спереди от NearPlane назад к FarPlane :), точнее, разделив FarPlane на NearPlane. Т.е. интервал 0.001 .. 1000 эквивалентен 1 .. 1000000.
2) Распределение точности в Z-буфере нелинейное - чем ближе, тем точнее, грубо говоря, на первые 10% интервала тратится 90% точности.
Поэтому даже при относительно вменяемом интервале 0.001 .. 2 (= 1..2000) вся точность уходит на объекты 0.001 .. 0.01 (много таких? :)), а на остальные почти ничего не остаётся.
Всё это есть в статье по ссылке, которую я давал...
← →
VolanD666 (2004-12-04 09:02) [14]Спасибо, за ссылку. Но я, честно говоря, не дружу с английским языком. :-)
А вообще есть где-нибудь ссылки в интернете по теме: "Как написать свой Doom", а то искал в поисковиках, но не нашел?
← →
cyborg © (2004-12-04 10:06) [15]
> "Как написать свой Doom"
Пиши по адресу: Дурдом, палата №6
;)
← →
Sapersky (2004-12-04 20:33) [16]А вообще есть где-нибудь ссылки в интернете по теме: "Как написать свой Doom", а то искал в поисковиках, но не нашел?
Так прямо и искал? :)
Вообще ссылки, в некотором роде, есть. Искать нужно по словам BSP/PVS и Portal (портал).
На gamedev.ru была статья по BSP.
Или вот ещё, с примерами:
http://www.cs.sun.ac.za/~henri/advgfx.html
Но по-английски...
← →
VolanD666 (2004-12-05 07:28) [17]Спасибо.
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.034 c