Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.09.27;
Скачать: CL | DM;

Вниз

Текстуры с альфа-каналом   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.012 c
3-1227710340
DSKalugin
2008-11-26 17:39
2009.09.27
как этот FB триггер перевести на MS SQL


2-1248427186
Бонд444
2009-07-24 13:19
2009.09.27
Напомните функцию.


2-1248274425
dmitry_12_08_73
2009-07-22 18:53
2009.09.27
Загрузка клиентской области окна в TImage


4-1218712679
dmitry_12_08_74
2008-08-14 15:17
2009.09.27
Подскажите, как проверить программно, нажата ли клавиша мыши


1-1216635647
МистерТ
2008-07-21 14:20
2009.09.27
Как получить следующие XML значения ?