Bawił się ktoś z was w pisanie shaderów w GLSL, chociażby podstawowych i uzywanie ich w SFML?
Udało mi się zrobić cokolwiek właściwie przepisując kod stąd: https://youtu.be/gsqrBx8CI0o Pzrepisując, bo nie znam ani glsl (no teraz jakies podstawy), ani SDL. Jednak jak próbuje tego samego shadera użyć w sfml-u - obiekt rysowany z shaderem po prstu jest niewidoczny. Niezależnie czy jest to sf::RectangleShape VertexArray czy jakiś sprite. Kod c++ wygląda tak:
#include <SFML/Graphics.hpp>
#include <iostream>
int main()
{
sf::Clock clock;
sf::Shader shader;
if(!shader.loadFromFile("shader.vert", "shader.frag"))
std::cout<<"didnt load ;//\n";
sf::VertexArray triangle(sf::Triangles, 3);
triangle[0].position = sf::Vector2f(10, 10);
triangle[1].position = sf::Vector2f(100, 10);
triangle[2].position = sf::Vector2f(100, 100);
//triangle[0].color = sf::Color::Red;
//triangle[1].color = sf::Color::Blue;
//triangle[2].color = sf::Color::Green;
sf::RenderWindow window(sf::VideoMode(500, 500), "vertices shading!");
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed){
window.close();
return 0;
}
}
shader.setParameter("time", clock.getElapsedTime().asSeconds());
window.clear(sf::Color::Black);
window.draw(triangle, &shader);
window.display();
}
return 0;
}
vertex i fragment shader poniżej:
http://pastebin.com/XyHrEasX
http://pastebin.com/UcMYY6He