|
3D-программирование Вопросы, касающиеся программирования 3D мира |
30.01.2008, 13:46
|
#1
|
☭
Регистрация: 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
|
|
Ответ: ARenderEntity и ZBuffer
Сделай скай бокс размером в 1 сантиметр в длинну и ширину....(от скалинга мира зависит) и привяжи к камере по позиции. А дальше EntityOrder(SkyBox,1)
|
|
|
Сообщение было полезно следующим пользователям:
|
|
30.01.2008, 14:55
|
#3
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: ARenderEntity и ZBuffer
спасибо. попробую.
|
(Offline)
|
|
30.01.2008, 15:26
|
#4
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: ARenderEntity и ZBuffer
Ордеры очень благополучно сворачивают ZBuffer
|
(Offline)
|
|
30.01.2008, 15:29
|
#5
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: ARenderEntity и ZBuffer
вспомнил. вариант не катит.
тогда будет земля за ним прорисовываться. и техника. ЗА скайбоксом.
|
(Offline)
|
|
30.01.2008, 17:22
|
#6
|
Дэвелопер
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений (для 1,460 пользователей)
|
Ответ: ARenderEntity и ZBuffer
2 HolyDel:
никто не запрещает поставить EntityOrder отрицательным - тогда рисоваться будет _после_ сцены
и еще если у тебя скайбокс - можешь поставить
экономия на стирании Color-buffer'a на старых карточках - все равно Skybox все оставшееся непрорисованное место заполняет.
|
(Offline)
|
|
31.01.2008, 03:31
|
#7
|
Бывалый
Регистрация: 04.01.2008
Адрес: Казахстан \ Талдыкорган
Сообщений: 659
Написано 170 полезных сообщений (для 509 пользователей)
|
Ответ: ARenderEntity и ZBuffer
СкайБокс- зло
__________________
Жизнь как говориться игра- делать игры моя профессия(с)
Программирование, это религия! Её нужно исповедовать.
|
(Offline)
|
|
31.01.2008, 04:43
|
#8
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Ответ: ARenderEntity и ZBuffer
Сообщение от HolyDel
вспомнил. вариант не катит.
тогда будет земля за ним прорисовываться. и техника. ЗА скайбоксом.
|
Наоборот, не будет
Ордер больше нуля - прорисовка после всего
Меньше нуля - перед всем
__________________
|
(Offline)
|
|
31.01.2008, 11:00
|
#9
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: ARenderEntity и ZBuffer
ага. щас так. картинка получается какой надо, но рендерится лишняя геометрия ЗА скайбоксом.
просто чтобы увидеть дальний верхний угол - надо увеличивать CameraRange. и сцена будте рисоваться чуть больше.
где то в корень из 3 раз. мне бы хотелось чуть оптимизировать.
вопрос ставлю по другому:
можно как нибудь отключить запись в буффер глубины?
в жиле это делается так: glDisable(GL_DEPTH_TEST)
|
(Offline)
|
|
31.01.2008, 11:06
|
#10
|
Легенда
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений (для 568 пользователей)
|
Ответ: ARenderEntity и ZBuffer
РендерСтейт ZENABLE. В FFP, это нужно у девайса устанавливать. Собс-но в программируемом конвейере можно установить ZENABLE = false; непосредственно в шейдере.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
31.01.2008, 11:19
|
#11
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: ARenderEntity и ZBuffer
D3DRS_ZENABLE = 7 - это?
вот пояснилка:
красный квадрат это скайбокс
красный круг это текущий радиус обзора
зеленые линии это линии фрустум пирамиды
синий триугольник это камера
серые точки - это танки по 25 000 триугольников каждый.
синий круг - это тот радиус обзора, который необходим чтобы картинка отрисовалась нормально, но у нас раидус больше (красный круг) и будут отрисовываться 6 лишних танков, которых мы гарантированно не увидим
Последний раз редактировалось HolyDel, 31.01.2008 в 11:47.
|
(Offline)
|
|
31.01.2008, 11:39
|
#12
|
Легенда
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений (для 568 пользователей)
|
Ответ: ARenderEntity и ZBuffer
|
(Offline)
|
|
31.01.2008, 11:42
|
#13
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: ARenderEntity и ZBuffer
Хм. По идее, если заюзать сферу, и возможность менять текстурные координаты ручками, для кубемапы, то этот варриант решается.
Видел библиотечку "Shader.dll", но там как я понял совсем не шейдеры были использованы. Там была игра с текстурными координатами. Так вот, если попытатся поменять текстурные координаты для кубымапы, тогда сможешь сделать сферо-кубемапу
|
(Offline)
|
|
31.01.2008, 11:49
|
#14
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Ответ: ARenderEntity и ZBuffer
конечно не шейдеры. шейдеров на dx7 нет.
Хм. По идее, если заюзать сферу, и возможность менять текстурные координаты ручками, для кубемапы, то этот варриант решается.
|
типа отрисовать на сфере куб? а может просто сферу? закрасить ее под облака.
|
(Offline)
|
|
31.01.2008, 11:55
|
#15
|
Бывалый
Регистрация: 04.01.2008
Адрес: Казахстан \ Талдыкорган
Сообщений: 659
Написано 170 полезных сообщений (для 509 пользователей)
|
Ответ: ARenderEntity и ZBuffer
сфера- это для этого случая!
__________________
Жизнь как говориться игра- делать игры моя профессия(с)
Программирование, это религия! Её нужно исповедовать.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 17:38.
|