SunnyBunny
> Нарисуй на экран спрайт, занимающий всю площадь экрана, с текстурой из твоего
> рендер таргета и режимом смешивания Multiply.
С этим пунктом проблемы. Нашёл sf::RenderStates::blendMode, sf::RenderTarget::draw ( const Drawable & drawable, const RenderStates & states = RenderStates::Default ).
Но ведь draw рисует всё в текстуру, нет? И спрайты же должны рисоваться сразу в окно, а не в RenderTarget?
Laynos
> Но ведь draw рисует всё в текстуру, нет?
Метод draw класса RenderTexture рисует в текстуру, а метод draw класса RenderWindow - на экран
>И спрайты же должны рисоваться сразу в окно, а не в RenderTarget?
Я в посте #23 написал, какие спрайты куда рисовать: пятна света в текстуру, спрайты объектов на экран, текстуру с отрендеренным в нее пятном света на экран
SunnyBunny
> 4) Сверху на экран твой рендер таргет с мультипликативным блендингом - бац.
т.е. заставить RenderTexture выплюнуть текстуру, а потом её поверх уровня нарисовать?
И зачем этот RenderTarget? RenderTexture, как я понял, при вызове draw рисует всё в текстуру, а RenderWindow рисует сразу в окно... Тогда что такое RenderTarget?
Laynos
> т.е. заставить RenderTexture выплюнуть текстуру, а потом её поверх уровня нарисовать?
ага :)
Laynos
> И зачем этот RenderTarget? RenderTexture, как я понял, при вызове draw рисует всё в текстуру, а RenderWindow рисует сразу в окно... Тогда что такое RenderTarget?
Это вопрос терминологии.
В SFML RenderTarget это абстрактный класс, который обозначает "что-то, во что можно отрендерить". Его наследники - RenderTexture и RenderWindow, они то тебе и нужны.
В некоторых других движках слово RenderTarget используют только применительно к рендерингу в текстуру, и я в этом же значении привык его употреблять.
Тема в архиве.