0
ShaderToyコードをy = 0に1つのプレーンのみを持つ基本的なOpenGLレンダラに統合しようとしています。しかし、私はどこから始めるべきか分からない。私の飛行機がリアルタイムで3Dレンダリングされている間、ShaderToyはuvテクスチャにレンダリングします。 2つのレンダリング手法をどのように統合するか、あるいは混在させることができるかの例はありますか?raymarchingとラスタライズ
ShaderToyコードをy = 0に1つのプレーンのみを持つ基本的なOpenGLレンダラに統合しようとしています。しかし、私はどこから始めるべきか分からない。私の飛行機がリアルタイムで3Dレンダリングされている間、ShaderToyはuvテクスチャにレンダリングします。 2つのレンダリング手法をどのように統合するか、あるいは混在させることができるかの例はありますか?raymarchingとラスタライズ
MVP行列については忘れて、2D画像としてレンダリングしてください。
shaderToyから得たものとします。
vec4 mainImage(in vec2 fragCoord) {
// some code you download from shaderToy
return color;
}
バーテックスシェーダへ
void mainImage(out vec4 fragColor, in vec2 fragCoord) {
// some code you download from shaderToy
fragColor = color; // suppose
}
変更、これは簡単です、あなたは単にOpenGLは、計算を行うことができます。
#version 330
in vec2 v_vert;
out vec2 f_vert;
void main() {
f_vert = v_vert;
}
fragColorを計算するために、あなたは頂点シェーダから何を得るの使用、(フラグメントシェーダへの均一な時間変化を渡すために覚えている)、それゆえフラグメントシェーダは、次のようにする必要があります:
#version 330
uniform float iTime; // this might vary, depends on the version of shaderToy
in vec2 f_vert;
out vec4 FragColor;
vec4 mainImage(in vec2 fragCoord) {
// some code you download from shaderToy
return color;
}
void main() {
FragColor = mainImage(f_vert);
}
ありがとう、それは助けになった。どのようにラスターカラーとロードされたモデルからの色付きレームを組み合わせるのですか?たとえば、ラスタライズされたモデルにraymarched shadowを適用できますか? – Homar