Форум: "Прочее";
Текущий архив: 2009.09.27;
Скачать: [xml.tar.bz2];
ВнизТекстуры с альфа-каналом Найти похожие ветки
← →
Unknown user © (2009-07-23 17:40) [0]Чувствую себя идиотом, так как не могу заставить OpenGL рисовать текстуры с альфа-каналом. Взял примеры (Ex87-89) к книге по OpenGL Краснова и там тоже почему-то не выводятся полупрозрачные текстуры. Текстуры выводятся нормально. Но нет полупрозрачности. В примерах Краснова полупрозрачными должен быть океаны на земном шарике.
Не могу понять, где туплю. Помогите разобраться. Вот ссылка на упомянутые примеры http://www.geosystema.net/samples/Chapter4.zip
← →
boa_kaa © (2009-07-24 00:41) [1]видяха какая?
← →
KilkennyCat © (2009-07-24 01:08) [2]и монитор. жк? мож, там полупрзрачность на грани невидимости жк-контрастности...
← →
@!!ex © (2009-07-24 10:22) [3]Блендинг включи.
← →
@!!ex © (2009-07-24 10:24) [4]
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
← →
Unknown user © (2009-07-24 12:13) [5]Блендинг включен, видяхи разные, пробовал на разных компах. Проблема была в ошибке в коде к книге Краснова. По редкому стечению обстоятельств эту же ошибку допустил я в своем коде:
было
glTexImage2D(GL_TEXTURE_2D, 0, 3, Width, Height, 0, GL_RGBA, GL_UNSIGNED_BYTE, DataA)
надо
glTexImage2D(GL_TEXTURE_2D, 0, 4, Width, Height, 0, GL_RGBA, GL_UNSIGNED_BYTE, DataA)
Теперь вопрос в другом. Как грамотно рисовать объекты с прозрачными текстурами в комбинации с остальными объектами сцены. Получается вот что http://www.geosystema.net/samples/Alpha.jpg. Через прозрачные части текстуры просвечивают только некоторые объекты, остальные прячутся.
Раньше с альфа-каналом дела не имел. Буду благодарен за полезные ссылки.
← →
@!!ex © (2009-07-24 12:46) [6]Not Found
The requested URL /samples/Alpha.jpg. was not found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Вообще представляю о чем речь.
Решения два(лично я их оба использую):
Сортировка
1) По прозрачности: сначала рисуются не прозрачные объекты, потом прозрачные
2) По рассотянию от камеры: сортируютсья только прозрачные объекты. Чем дальше объект тем раньше он рисуется.
← →
Unknown user © (2009-07-24 13:07) [7]http://www.geosystema.net/samples/Alpha.jpg
точка в конце адреса лишняя
спасибо за советы. есть ли способ обойтись без сортировки?
← →
@!!ex © (2009-07-24 13:22) [8]> [7] Unknown user © (24.07.09 13:07)
Да. Это то что я имел ввиду.
Есть способ.
Alpha Test, Greater, 0. Правда будет артефакт на краю прозрачности из-за фильтрации.
← →
@!!ex © (2009-07-24 13:22) [9]Я лично долгое время обходился без сортировки, потому что казалось сложно реализуемым...
В итоге все равно пришлось ее делать. :)
← →
Unknown user © (2009-07-24 13:29) [10]еще вопрос насколько сильно glEnable(GL_BLEND) замедляет отрисовку? Можно ли включать блендинг даже когда в сцене нет прозрачных объектов?
← →
@!!ex © (2009-07-24 13:33) [11]> [10] Unknown user © (24.07.09 13:29)
Не актуальный вопрос. :)
На современном железе не замедляет ни на сколько...
← →
Unknown user © (2009-07-26 13:11) [12]С полупрозрачными объектами разобрался. Спасибо за помощь.
Есть вопрос общего плана. Стоит задача написать 3D движок для рендеринга моделей городов в реальном времени. Все как в Google Earth. Трехмерные здания с текстурами, текстурированная поверхность земли с рельефом местности. На входе KMZ файлы, содержащие 3D модели(загрузчик уже готов). KMZ файлы ссылаются на другие файлы следующего уровня детализации. Ссылка активируется при попадании камеры в заданный регион. Таким образом работает Google Earth, таким образом возможно отображение огромных массивов информации.
Собственно вопрос. Что лучше использовать готовый движок, например, GLScene, или писать все самому с нуля.
Требования. Эффективное отсечение невидимых граней (например, использование Octree дерева). Эффективный менеджмент памяти. Так как размеры сцены огромны (сотни тысяч объектов) необходимо выгружать не попадающие в камеру объекты из памяти при превышении заданного лимита использования памяти. Поддержка уровней детализации. Желательно рисовать модель рельефа с постепенной деградацией числа полигонов по мере удаления от позиции камеры. Тени не нужны. Анимация пока не нужна, но в будущем возможно понадобится. В общем главное требование быстродействие. Жду советов.
← →
@!!ex © (2009-07-26 14:09) [13]Лучше всего заказать это программистам. Мне, например. :)
Я объективно посоветовать не смогу, ибо очень плохо отношусь к любым движкам. Это субъективное мнение, поэтому на него опираться не стоит.
← →
@!!ex © (2009-07-26 14:11) [14]По поводу удаления из памяти:
ИМХО надо удалять объекты не по принципу перехаполнения памяти, а по принципу долгого не использования.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2009.09.27;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.004 c