Я пытаюсь реализовать следующий шейдер отсюда: https://gamedev.stackexchange.com/questions/68401/how-can-i-draw-outlines-around-3d-models
моя база - это 2D-изображение с предварительно установленными шейдерами.
Я не был уверен, как применить этот
glDrawBuffer( GL_COLOR_ATTACHMENT1 );
Vec3f clearVec( 0.0, 0.0, -1.0f );
// from normalized vector to rgb color; from [-1,1] to [0,1]
clearVec = (clearVec + Vec3f(1.0f, 1.0f, 1.0f)) * 0.5f;
glClearColor( clearVec.x, clearVec.y, clearVec.z, 0.0f );
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
Итак, я не знал, вот как выглядит мой код QML:
ShaderEffect {
id: outline
anchors.fill: swirls
visible: true
property variant source: swirls
//property variant source: mascot
// first render target from the first pass
property variant uTexColor: swirls
// second render target from the first pass
property variant uTexNormals: swirls
property variant uResolution: Qt.vector2d(960, 640) //screen resolution
property variant delta: Qt.size(0.1 / width, 0.2 / height)
fragmentShader: "qrc:effects/shaders/outline.frag"
layer.enabled: true
layer.effect: OpacityMask {
maskSource: swirls
}
}
Я не очень разбираюсь в нормальных диффузных картах и понятия не имею, что
in vec2 fsInUV;
это то, что кажется важным для того, чтобы заставить это работатьЯ пытаюсь создать спрайтные контуры вокруг круга, который я сделал с помощью маски непрозрачности + шейдеров (она выглядит как вода с шейдерами)
Исходный пользователь для шейдеров неактивен, и я не знаком скак QML реализует шейдеры, так как я вообще незнаком с шейдерами.