2011-01-13 140 views
0

我在OpenGL中有幾個對象,我想標記選定的對象。我的想法是使用GLSL着色器添加選定的顏色。 如何獲得片段着色器中像素的「原始」顏色? 我可以在紋理中查看顏色,但是當有多個紋理時?如何編寫通用GLSL着色器來着色對象

回答

0

如果您打算使用特定着色器渲染選定對象,則必須創建一個着色器,該着色器具有與對象的常規渲染(光照,紋理,...)相同的行爲。這意味着你必須自己計算像素的顏色。

如果您打算渲染所有對象,然後添加您的選擇,則無法從片段着色器中檢索幀緩衝區像素的顏色(您需要從幀緩衝區創建紋理並使用它,但我認爲它超出了範圍)。

0

選項A),可以將顏色添加到當前漫反射顏色/紋理和片段着色器只適用於所選擇的一個: 顏色= ... gl_FragColor =混合物(顏色,selectionColor設置,0.5);

選項B)渲染到幀緩衝,並postproccess對象添加顏色

的選項取決於你的能力來改變着色器和識別物體。