Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 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.052 c
14-1108619304
vajo
2005-02-17 08:48
2005.03.06
cidaemon.exe


9-1102599502
wl
2004-12-09 16:38
2005.03.06
Алгоритм нарезания паззлов из картинки


4-1106048588
atom
2005-01-18 14:43
2005.03.06
расшарить диск С: на локальной машине


9-1102309010
Colt1978
2004-12-06 07:56
2005.03.06
Масштабирование при смене разрешения (GLScene)


1-1108983469
siriusP
2005-02-21 13:57
2005.03.06
Ограничение числа строк в TDecisionCube





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский