![]() |
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, то эффекта нет. Если не увеличивать то скайбокса нет. надо както отключить запись в буффер глубины. как? а может перейти на скайсферу? |
Ответ: ARenderEntity и ZBuffer
Сделай скай бокс размером в 1 сантиметр в длинну и ширину....(от скалинга мира зависит) и привяжи к камере по позиции. А дальше EntityOrder(SkyBox,1)
|
Ответ: ARenderEntity и ZBuffer
спасибо. попробую.
|
Ответ: ARenderEntity и ZBuffer
Ордеры очень благополучно сворачивают ZBuffer ;)
|
Ответ: ARenderEntity и ZBuffer
вспомнил. вариант не катит.
тогда будет земля за ним прорисовываться. и техника. ЗА скайбоксом. |
Ответ: ARenderEntity и ZBuffer
2 HolyDel:
никто не запрещает поставить EntityOrder отрицательным - тогда рисоваться будет _после_ сцены и еще если у тебя скайбокс - можешь поставить Код:
CameraClsMode cam, 0, 1 |
Ответ: ARenderEntity и ZBuffer
СкайБокс- зло:)
|
Ответ: ARenderEntity и ZBuffer
Цитата:
Ордер больше нуля - прорисовка после всего Меньше нуля - перед всем |
Ответ: ARenderEntity и ZBuffer
ага. щас так. картинка получается какой надо, но рендерится лишняя геометрия ЗА скайбоксом.
просто чтобы увидеть дальний верхний угол - надо увеличивать CameraRange. и сцена будте рисоваться чуть больше. где то в корень из 3 раз. мне бы хотелось чуть оптимизировать. вопрос ставлю по другому: можно как нибудь отключить запись в буффер глубины? в жиле это делается так: glDisable(GL_DEPTH_TEST) |
Ответ: ARenderEntity и ZBuffer
РендерСтейт ZENABLE. В FFP, это нужно у девайса устанавливать. Собс-но в программируемом конвейере можно установить ZENABLE = false; непосредственно в шейдере.
|
Ответ: ARenderEntity и ZBuffer
Вложений: 1
D3DRS_ZENABLE = 7 - это?
вот пояснилка: красный квадрат это скайбокс красный круг это текущий радиус обзора зеленые линии это линии фрустум пирамиды синий триугольник это камера серые точки - это танки по 25 000 триугольников каждый. синий круг - это тот радиус обзора, который необходим чтобы картинка отрисовалась нормально, но у нас раидус больше (красный круг) и будут отрисовываться 6 лишних танков, которых мы гарантированно не увидим :( |
Ответ: ARenderEntity и ZBuffer
Цитата:
|
Ответ: ARenderEntity и ZBuffer
Хм. По идее, если заюзать сферу, и возможность менять текстурные координаты ручками, для кубемапы, то этот варриант решается.
Видел библиотечку "Shader.dll", но там как я понял совсем не шейдеры были использованы. Там была игра с текстурными координатами. Так вот, если попытатся поменять текстурные координаты для кубымапы, тогда сможешь сделать сферо-кубемапу :) |
Ответ: ARenderEntity и ZBuffer
конечно не шейдеры. шейдеров на dx7 нет.
Цитата:
|
Ответ: ARenderEntity и ZBuffer
сфера- это для этого случая!
|
Часовой пояс GMT +4, время: 19:04. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot