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

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

glsl 片段著色器矩形不會顯示

glsl 片段著色器矩形不會顯示

慕斯709654 2021-12-10 15:37:22
我嘗試在屏幕上繪制一個紅色矩形,但在編譯后我的屏幕變成藍色。有人可以幫助我了解我做錯了什么嗎?我是 GLSL 的新手#version 330out vec4 outColor;void drawRectangle(in vec2 pixelXY){    if(pixelXY.x > 60 && pixelXY.x < 200 && pixelXY.y > 60 && pixelXY.y < 200)    {        outColor = vec4(1.0, 0.0, 0.0, 0.0);    }}void main(){    outColor = vec4(0.0, 0.0, 1.0 , 0.0);    drawRectangle(vec2(60,100));}
查看完整描述

1 回答

?
胡子哥哥

TA貢獻1825條經驗 獲得超6個贊

您drawRectangle使用常量實際參數調用函數


drawRectangle(vec2(60,100));

請注意,這與以下內容相同:


if (60 > 60 && 60 < 200 && 100 > 60 && 100 < 200)

{

    outColor = vec4(1.0, 0.0, 0.0, 0.0);

}

要解決此問題,您必須將實際參數更改為當前正在處理的片段的窗口坐標。見gl_FragCoord:


drawRectangle( gl_FragCoord.xy );

注意,片段著色器對每個片段執行一次,內置的統一變量gl_FragCoord包含當前片段的坐標。


查看完整回答
反對 回復 2021-12-10
  • 1 回答
  • 0 關注
  • 140 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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