首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据海拔变化颜色?

如何根据海拔变化颜色?
EN

Stack Overflow用户
提问于 2022-02-11 16:22:44
回答 1查看 43关注 0票数 1

我希望取得这样的成就:

但是,我无法获得片段着色器内给定点的Y坐标(投影前)。

下面是我的片段着色器

代码语言:javascript
复制
precision mediump float;

vec4 blue = vec4(0.0, 0.0, 1.0, 1.0);
vec4 pink = vec4(1.0, 0.0, 1.0, 1.0);

void main() {
    float y_coordinates = ???
    gl_FragColor = mix(blue , pink , y_coordinates);
}

我应该从顶点着色器寄过来吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-11 16:30:39

将顶点坐标从顶点着色器传递到片段着色器。例如:

顶点着色机

代码语言:javascript
复制
attribute vec3 pos;
varying vec3 vertex_pos;

void main() {
    vertex_pos = pos;
    gl_Position = ...;
}

碎片着色器:

代码语言:javascript
复制
precision mediump float;
varying vec3 vertex_pos;

vec4 blue = vec4(0.0, 0.0, 1.0, 1.0);
vec4 pink = vec4(1.0, 0.0, 1.0, 1.0);

void main() {
    gl_FragColor = mix(blue, pink, vertex_pos.y);
}

注意,顶点坐标的y分量必须在0.0,1.0范围内。如果您的坐标位于另一个范围内,则必须将其映射到范围0.0、1.0。例如从a,b到0.0,1.0的地图

代码语言:javascript
复制
float w = (vertex_pos.y - a) / (b-a);
gl_FragColor = mix(blue, pink, w);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71083358

复制
相关文章

相似问题

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