Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 30.01.2008, 13:46   #1
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
ARenderEntity и ZBuffer

есть большая карта и маленький CameraRange.
чтобы влез весь SkyBox, включаля дальний верхиний левый угол, приходится увеличивать CameraRange до величин, когда изображение закрывается туманом.
такая идея оказалась плохой:
CameraClsMode cam,1,1
CameraRange cam,1,1000
ARenderEntity(cam,skybox)
CameraRange cam,1,200
CameraClsMode cam,0,1
RenderWorld
плохой тем, что Z-координаты фрагмета доводятся до интервала 0..1, и такн, находящийся в 100 метрах оказывается "дальше" (и соответсвенно не выводится), чем скайбокс рисующийся в 500 метрах (ведь и CameraRange больше при отрисовке скайбокса).
это конечно касается всех фрагментов. Если с размерами SkyBox-а увеличивать и диапазон CameraRange, то эффекта нет. Если не увеличивать то скайбокса нет.
надо както отключить запись в буффер глубины. как?

а может перейти на скайсферу?
(Offline)
 
Ответить с цитированием
Старый 30.01.2008, 14:51   #2
Черный крыс
 
Сообщений: n/a
Ответ: ARenderEntity и ZBuffer

Сделай скай бокс размером в 1 сантиметр в длинну и ширину....(от скалинга мира зависит) и привяжи к камере по позиции. А дальше EntityOrder(SkyBox,1)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
HolyDel (30.01.2008)
Старый 30.01.2008, 14:55   #3
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: ARenderEntity и ZBuffer

спасибо. попробую.
(Offline)
 
Ответить с цитированием
Старый 30.01.2008, 15:26   #4
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: ARenderEntity и ZBuffer

Ордеры очень благополучно сворачивают ZBuffer
(Offline)
 
Ответить с цитированием
Старый 30.01.2008, 15:29   #5
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: ARenderEntity и ZBuffer

вспомнил. вариант не катит.
тогда будет земля за ним прорисовываться. и техника. ЗА скайбоксом.
(Offline)
 
Ответить с цитированием
Старый 30.01.2008, 17:22   #6
ffinder
Дэвелопер
 
Аватар для ffinder
 
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений
(для 1,460 пользователей)
Ответ: ARenderEntity и ZBuffer

2 HolyDel:
никто не запрещает поставить EntityOrder отрицательным - тогда рисоваться будет _после_ сцены
и еще если у тебя скайбокс - можешь поставить
CameraClsMode cam, 0, 1
экономия на стирании Color-buffer'a на старых карточках - все равно Skybox все оставшееся непрорисованное место заполняет.
(Offline)
 
Ответить с цитированием
Старый 31.01.2008, 03:31   #7
FDsagizi
Бывалый
 
Аватар для FDsagizi
 
Регистрация: 04.01.2008
Адрес: Казахстан \ Талдыкорган
Сообщений: 659
Написано 170 полезных сообщений
(для 509 пользователей)
Ответ: ARenderEntity и ZBuffer

СкайБокс- зло
__________________
Жизнь как говориться игра- делать игры моя профессия(с)

Программирование, это религия! Её нужно исповедовать.
(Offline)
 
Ответить с цитированием
Старый 31.01.2008, 04:43   #8
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Ответ: ARenderEntity и ZBuffer

Сообщение от HolyDel Посмотреть сообщение
вспомнил. вариант не катит.
тогда будет земля за ним прорисовываться. и техника. ЗА скайбоксом.
Наоборот, не будет
Ордер больше нуля - прорисовка после всего
Меньше нуля - перед всем
__________________
(Offline)
 
Ответить с цитированием
Старый 31.01.2008, 11:00   #9
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: ARenderEntity и ZBuffer

ага. щас так. картинка получается какой надо, но рендерится лишняя геометрия ЗА скайбоксом.
просто чтобы увидеть дальний верхний угол - надо увеличивать CameraRange. и сцена будте рисоваться чуть больше.
где то в корень из 3 раз. мне бы хотелось чуть оптимизировать.

вопрос ставлю по другому:
можно как нибудь отключить запись в буффер глубины?
в жиле это делается так: glDisable(GL_DEPTH_TEST)
(Offline)
 
Ответить с цитированием
Старый 31.01.2008, 11:06   #10
johnk
Легенда
 
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений
(для 568 пользователей)
Ответ: ARenderEntity и ZBuffer

РендерСтейт ZENABLE. В FFP, это нужно у девайса устанавливать. Собс-но в программируемом конвейере можно установить ZENABLE = false; непосредственно в шейдере.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
HolyDel (31.01.2008)
Старый 31.01.2008, 11:19   #11
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: ARenderEntity и ZBuffer

D3DRS_ZENABLE = 7 - это?

вот пояснилка:
красный квадрат это скайбокс
красный круг это текущий радиус обзора
зеленые линии это линии фрустум пирамиды
синий триугольник это камера
серые точки - это танки по 25 000 триугольников каждый.

синий круг - это тот радиус обзора, который необходим чтобы картинка отрисовалась нормально, но у нас раидус больше (красный круг) и будут отрисовываться 6 лишних танков, которых мы гарантированно не увидим
Миниатюры
Нажмите на изображение для увеличения
Название: пояснилка.PNG
Просмотров: 679
Размер:	5.4 Кб
ID:	4292  

Последний раз редактировалось HolyDel, 31.01.2008 в 11:47.
(Offline)
 
Ответить с цитированием
Старый 31.01.2008, 11:39   #12
johnk
Легенда
 
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений
(для 568 пользователей)
Ответ: ARenderEntity и ZBuffer

D3DRS_ZENABLE = 7 - это?
Не Вот, посмотри: http://www.toymaker.info/Games/html/render_states.html
(Offline)
 
Ответить с цитированием
Старый 31.01.2008, 11:42   #13
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: ARenderEntity и ZBuffer

Хм. По идее, если заюзать сферу, и возможность менять текстурные координаты ручками, для кубемапы, то этот варриант решается.
Видел библиотечку "Shader.dll", но там как я понял совсем не шейдеры были использованы. Там была игра с текстурными координатами. Так вот, если попытатся поменять текстурные координаты для кубымапы, тогда сможешь сделать сферо-кубемапу
(Offline)
 
Ответить с цитированием
Старый 31.01.2008, 11:49   #14
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: ARenderEntity и ZBuffer

конечно не шейдеры. шейдеров на dx7 нет.

Хм. По идее, если заюзать сферу, и возможность менять текстурные координаты ручками, для кубемапы, то этот варриант решается.
типа отрисовать на сфере куб? а может просто сферу? закрасить ее под облака.
(Offline)
 
Ответить с цитированием
Старый 31.01.2008, 11:55   #15
FDsagizi
Бывалый
 
Аватар для FDsagizi
 
Регистрация: 04.01.2008
Адрес: Казахстан \ Талдыкорган
Сообщений: 659
Написано 170 полезных сообщений
(для 509 пользователей)
Ответ: ARenderEntity и ZBuffer

сфера- это для этого случая!
__________________
Жизнь как говориться игра- делать игры моя профессия(с)

Программирование, это религия! Её нужно исповедовать.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 17:38.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com