首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用gl_FragCoord在四边形中创建孔

使用gl_FragCoord在四边形中创建孔
EN

Stack Overflow用户
提问于 2011-03-24 19:34:46
回答 1查看 2.3K关注 0票数 2

我正在学习WebGL,我想做以下几件事:

使用碎片着色器创建一个带有方形孔的3D四边形。

看起来我需要适当地设置基于gl_FragCoordgl_FragColor

我也应该这样做:

a)将gl_FragCoord从窗口坐标转换为模型坐标,执行适当的几何检查,并设置颜色。

b)以某种方式将孔信息从顶点着色器传递到片段着色器。也许可以使用纹理坐标。这一点我不太清楚。

我对实现上面的任何一个都不太清楚,所以我倾向于给出一些关于这两个方面的编码提示。

我的背景是一个OpenGL的老定时器,他没有跟上新的着色语言范例,现在正在努力追赶...

编辑(27/03/2011):

我已经能够基于tex coord提示成功地实现上面的代码。我已经在下面的链接中写下了这个例子:

Quads with holes - example

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-24 20:03:08

最简单的方法是使用纹理坐标。只需将corrds作为额外的属性数组提供,然后使用varying传递到片段着色器。着色器应包含类似以下内容:

顶点:

代码语言:javascript
复制
attribute vec3 aPosition;
attribute vec2 aTexCoord;

varying vec2 vTexCoord;

void main(){
     vTexCoord=aTexCoord;
     .......
}

片段:

代码语言:javascript
复制
varying vec2 vTexCoord;

void main(){
     if(vTexCoord.x>{lower x limit} && vTexCoord.x<{upper x limit} && vTexCoord.y>{lower y limit} && vTexCoord.y<{upper y limit}){
discard; //this tell GFX to discard this fragment entirly
}
.....
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5418458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档