亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

紋理如何在OpenGL3中顯示為顏色而不是灰度?

紋理如何在OpenGL3中顯示為顏色而不是灰度?

Go
慕容3067478 2022-06-21 16:28:11
我正在使用 Golang 開發一個 GUI 程序。我正在為我的 GUI 使用 imgui-go 框架?,F在,我遇到了顏色紋理顯示問題。我已經從文件中加載了圖像,并將圖像制作為紋理,然后附加到 GUI 上。圖像肯定是彩色的,但它在 gui 上顯示灰度。這個問題有最好的解決方案嗎?謝謝你。OpenGL片段著色器:uniform int ImageType;uniform sampler2D Texture;uniform sampler2D Palette;in vec2 Frag_UV;in vec4 Frag_Color;out vec4 Out_Color;void main(){         Out_Color = vec4(Frag_Color.rgb, Frag_Color.a * texture( Texture, Frag_UV.st).r); }圖像紋理:gl.BindTexture(gl.TEXTURE_2D, texture)width := int32(bm.W)height := int32(bm.H) dataPtr := gl.Ptr(bm.Data)gl.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR)gl.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR)gl.PixelStorei(gl.UNPACK_ROW_LENGTH, 0)gl.TexImage2D(gl.TEXTURE_2D, 0, gl.RGBA, int32(width), int32(height),    0, gl.RGBA, gl.UNSIGNED_BYTE, dataPtr)
查看完整描述

1 回答

?
智慧大石

TA貢獻1946條經驗 獲得超3個贊

我不知道是什么,Frag_Color但你把它放在輸出顏色中,因為Frag_Color.rgb這使得紋理的顏色取決于它的值。您Texture只輸入透明度/可見性的 alpha 值。試試這個代碼,它應該可以工作: Out_Color = texture(Texture, Frag_UV.st); 如果那個代碼不起作用,你也可以試試這個: Out_Color = Frag_Color * texture(Texture, Frag_UV.st);

很抱歉格式化,我在手機上寫的時候效果不好


查看完整回答
反對 回復 2022-06-21
  • 1 回答
  • 0 關注
  • 276 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號