gpt4 book ai didi

opengl-es - 使用 OpenGL ES 的(径向)渐变填充

转载 作者:行者123 更新时间:2023-12-04 16:46:01 36 4
gpt4 key购买 nike

我目前正在使用以下代码绘制形状;

GLfloat vertex = // vertex points

glLineWidth(2);

glEnableClientState(GL_VERTEX_ARRAY);
glColor4f(1.0, 0.0, 0.0, 1.0);
glVertexPointer(2, GL_FLOAT, 0, vertex);
glDrawArrays(GL_LINE_STRIP, 0, vertex_size);
glDisableClientState(GL_VERTEX_ARRAY);

我绘制的形状会自行闭合,是否可以用(径向)渐变填充该形状?如果是这样,如何去做?

最佳答案

如果您在 ES 1.x 中,则无法获得计算的每像素径向渐变,因为颜色是跨面线性插值的。因此,您可以上传径向渐变纹理或构建合适的几何图形以提供近径向渐变。

在 ES 2.x 中没有这样的限制,因为您正在为自己定义每像素发生的事情。一个非常简单的径向渐变片段着色器可能是(即席编码,没有彻底检查语法):

varying mediump vec3 myPosition;
uniform mediump vec3 referencePosition;
uniform lowp vec4 centreColour, outerColour;

[...]

mediump float distanceFromReferencePoint =
clamp(distance(myPosition, referencePosition), 0.0, 1.0);

gl_FragColor = mix(centreColour, outerColour, distanceFromReferencePoint);

关于opengl-es - 使用 OpenGL ES 的(径向)渐变填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6690855/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com