Конференция "Игры" » OpenGL, blend [Delphi, Windows]
 
  • RGV © (09.10.09 14:52) [0]
    Доброе время суток. Недавно начал изучать OGL, делаю простенкую программку www.roganovg.narod.ru/stars.zip
    По идее все "звезды" должны быть полупрозрачные точнее "пушистые"  загружаю текстуры с учетом альфы, разрешаю бленд, но все равно некоторые "звезды" перекрывают друг друга. Что я делаю не так?
  • CrytoGen (09.10.09 15:14) [1]
    что-то типа этого
    glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
  • RGV © (09.10.09 16:17) [2]
    Дык так и стоит в моем исходнике
  • @!!ex © (09.10.09 18:11) [3]
    Сортировку по расстоянию сделай.
    и учи матчасть(как работает Depth(Z) buffer)
  • RGV © (10.10.09 05:23) [4]
    Где б ее взять, матчасть!? Книгу Краснова читаю по 3-му разу ;) Очень много в гуглях но в основном на с++.
    За совет про сортировку пасиб, попробую.
    Кстати такая мысля зарождалась. )
  • CrytoGen (10.10.09 06:47) [5]
    ах да забыл.
    если есть только звёзды - можно отключить Z buffer
  • main © (10.10.09 14:23) [6]
    Для звезд лучше подойдет суммирующее смешивание:
    glBlendFunc(GL_ONE, GL_ONE);
    К тому же, при суммирующем смешивании можно обойтись без сортировки.
  • @!!ex © (10.10.09 14:25) [7]
    Да даже если не только звкзды...
    можно с выключенным тестом глубины рендерить звезды, а потому уже с тестом все остальное.


    > [4] RGV ©   (10.10.09 05:23)

    При чем тут С++? Я про логику работы GPU, а не про язык программирования.
  • @!!ex © (10.10.09 14:28) [8]
    http://cgm.computergraphics.ru/issues/issue16/3dbooks_review
    Также рекомендую прочитать первый каммент.

    > К тому же, при суммирующем смешивании можно обойтись без
    > сортировки.

    ПРи включенном Delth Test'e? Ну-ну. :))
  • main © (10.10.09 21:02) [9]

    > ПРи включенном Delth Test'e? Ну-ну. :))


    Я недавно тут в спор ввязался по поводу суммирующего смешивания:
    http://www.gamedev.ru/code/tip/?id=3679

    ))
  • RGV © (11.10.09 03:44) [10]

    > @!!ex ©   (10.10.09 14:25) [7]

    ты писал

    > @!!ex ©   (09.10.09 18:11) [3]
    > Сортировку по расстоянию сделай.
    > и учи матчасть(как работает Depth(Z) buffer)

    я ответил

    > Где б ее взять, матчасть!? Книгу Краснова читаю по 3-му
    > разу ;) Очень много в гуглях но в основном на с++....

    Вопрос? что такое матчасть? Я так понял это что то вроде ликбеза, вот я и сказал что очень много инфы по огл но в основном на си
  • RGV © (11.10.09 03:53) [11]
    Всем большое спасибо за советы

    > main ©   (10.10.09 14:23) [6]

    glBlendFunc(GL_ONE, GL_ONE); проблемы не решил, но зато приятный эффект наблюдается.

    Видно без сортировки не решить проблему. Интересно, а какой лучше алгоритм сортировки придумать ? Чтобы менее "болезненно" для проца было
  • CrytoGen (11.10.09 07:44) [12]
    а так пробовал?
        glDisable(GL_DEPTH_TEST);
  • RGV © (11.10.09 08:20) [13]
    Ну так и сделал + сортировка
  • CrytoGen (11.10.09 08:27) [14]
    а зачем сортировка то? :)
  • CrytoGen (11.10.09 08:28) [15]
    glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
    и
    glDisable(GL_DEPTH_TEST);

    всё должно работать
  • main © (11.10.09 11:49) [16]

    > Видно без сортировки не решить проблему. Интересно, а какой
    > лучше алгоритм сортировки придумать ? Чтобы менее "болезненно"
    > для проца было


    Ты видимо ссылку из 9 поста не смотрел, а если смотрел, то видимо не понял. Если тебя устраивает смешивание суммирующее, то там как раз и написано как обойтись без сортировки.
  • @!!ex © (12.10.09 10:20) [17]
    > [9] main ©   (10.10.09 21:02)
    > Я недавно тут в спор ввязался по поводу суммирующего смешивания:

    Тебе тоже учить матчасть, если думаешь что тип  смешивания может помочь при включенном тесте глубины и неверной сортировке.


    > [10] RGV ©   (11.10.09 03:44)

    Матчасть - это принципы работы алгоритмов.
    OpenGL - это чисто API. API работает с видеокартой. Вот и разберись как работает видеокарта. Как работает тест глубины в данном случае.
  • RGV © (12.10.09 12:42) [18]

    > @!!ex ©   (12.10.09 10:20) [17]

    Большой кайлём. А то я не пойму о чем речь то :))
    з.ы. кайлём это у нас тут на севере коряки так спасибо говорят )
  • main © (12.10.09 13:19) [19]

    > Тебе тоже учить матчасть, если думаешь что тип  смешивания
    > может помочь при включенном тесте глубины и неверной сортировке.
    >


    Я думаю ты сам не понимаешь что говоришь, там же все разжевано, и все элементарно делается.

    Какая еще "неверная сортировка", ты о чем? При суммирующем смешивании сортировка вообще не нужна. (именно при суммирующем, и только присуммирующем)

    Делай по пунктам слово в слово как автор в той заметке написал, и все у тебя получится, и картинка будет правильной.

    А если вдруг тебе еще и приспичило, и ты еще хочешь чтобы и в depth-буффере были все значения, то потом просто нарисуй все полупрозрачные звезды(для которых отключал запись в depth-буффер) без записи в color-буфер, но с записью в depth-буффер, и с включенным тестом глубины. ( !! и все это без сортировки !! )
 
Конференция "Игры" » OpenGL, blend [Delphi, Windows]
Есть новые Нет новых   [134428   +41][b:0][p:0.001]