私の質問は、頂点カラーデータをシェーダプログラムに統一的に渡す方法です。 OpenGLのC++コードとは異なり、属性を定義してシェーダプログラムとリンクします。頂点の色情報をGLSLシェーダプログラムに渡す方法Unity
例:
float vertices []
{
//vertex pos //vertex color
.0.0, 1.0, 0.0, 1.0, 0.0, 0.0,
1.0, 2.0, 1.0 0.0, 1.0, 0.0
}
した後、我々はサイズに基づいて、それを解析してデータを渡し、頂点バッファにサイズを相殺。 "gl_vertex"はすべての頂点位置データを取りますが、カラーデータも渡したいので、フラグメントシェーダーで使用できます。
私はこのような何かをしたい、
//vertex shader
in vec4 color
out vec4 Color
void main()
{
gl_Position = gl_vertex //working fine
Color = color //expecting
}
//fragment shader
out vec4 fragcolor
in vec4 Color
void main()
{
outColor = Color
}
3Dモデルからシェーダーへの頂点カラーを意味しますか? – Programmer
ユニティマニュアルを読むことをお勧めします。 GLシェーダは、.shaderファイルで使用されるものとはまったく異なりますので、ここではOpenGLにタグを付けるべきではありません。最新のUnity Shader Referenceについては、https://docs.unity3d.com/Manual/SL-Reference.htmlを参照してください。 – finlaybob
[GLSLを使用する](https://docs.unity3d.com/Manual/SL-GLSLShaderPrograms.html)しようとしていますか?この質問から完全には分かりません。 – Moira