Войти
ПрограммированиеФорумГрафика

[OpenGL]2d light? (3 стр)

Страницы: 1 2 3
#30
10:15, 20 авг 2014

http://www.redblobgames.com/articles/visibility/

#31
13:17, 20 авг 2014

SunnyBunny
> Нарисуй на экран спрайт, занимающий всю площадь экрана, с текстурой из твоего
> рендер таргета и режимом смешивания Multiply.
С этим пунктом проблемы. Нашёл sf::RenderStates::blendMode,  sf::RenderTarget::draw  ( const Drawable &  drawable, const RenderStates &  states = RenderStates::Default ).
Но ведь draw рисует всё в текстуру, нет? И спрайты же должны рисоваться сразу в окно, а не в RenderTarget?

#32
14:08, 20 авг 2014

Laynos
> Но ведь draw рисует всё в текстуру, нет?
Метод draw класса RenderTexture рисует в текстуру, а метод draw класса RenderWindow - на экран

>И спрайты же должны рисоваться сразу в окно, а не в RenderTarget?
Я в посте #23 написал, какие спрайты куда рисовать: пятна света в текстуру, спрайты объектов на экран, текстуру с отрендеренным в нее пятном света на экран

#33
18:02, 20 авг 2014

SunnyBunny
> 4) Сверху на экран твой рендер таргет с мультипликативным блендингом - бац.
т.е. заставить RenderTexture выплюнуть текстуру, а потом её поверх уровня нарисовать?

И зачем этот RenderTarget? RenderTexture, как я понял, при вызове draw рисует всё в текстуру, а RenderWindow рисует сразу в окно... Тогда что такое RenderTarget?

#34
18:23, 20 авг 2014

Laynos
> т.е. заставить RenderTexture выплюнуть текстуру, а потом её поверх уровня нарисовать?
ага :)

Laynos
> И зачем этот RenderTarget? RenderTexture, как я понял, при вызове draw рисует всё в текстуру, а RenderWindow рисует сразу в окно... Тогда что такое RenderTarget?
Это вопрос терминологии.
В SFML RenderTarget это абстрактный класс, который обозначает "что-то, во что можно отрендерить". Его наследники - RenderTexture и RenderWindow, они то тебе и нужны.
В некоторых других движках слово RenderTarget используют только применительно к рендерингу в текстуру, и я в этом же значении привык его употреблять.

Страницы: 1 2 3
ПрограммированиеФорумГрафика

Тема в архиве.