11
|
Aran Mulholland JohnnyAce · 技术社区 · 14 年前 |
![]() |
1
8
是的,这是可能的!选中此绘制多个不同圆弧的GLSL脚本:
从而产生这样的形象:
|
![]() |
2
11
是的,这是可能的。 将纹理坐标设置为多边形,以便可以访问着色器中的相对坐标(例如,从-1,-1到1,1使多边形的中心为0,0)。在片段着色器中,使用毕达哥兰计算到中心的距离。如果距离小于圆的半径,则像素位于圆内。然后,可以为两个圆指定半径,如果像素位于外圆内部和外圆外部,则可以为其上色。 如果你只想给一条弧线上色,用atan(y,x)得到角度并检查它是否在给定的范围内。 在确定点是否在圆内时,也可以使用插值(步长、平滑步长等)而不是简单的if来平滑圆。 另外,作为优化,在计算到中心的距离时不需要计算平方根,如果您改为再次选中半径^2。 |
![]() |
RavioliDish · 着色器没有纹理属性“\u MainTex” 2 年前 |
![]() |
Kevin Su · 无法在opengl中正确绘制我的汽车 6 年前 |
![]() |
solub · 如何在GLSL着色器中实现颜色矩阵过滤器 6 年前 |
![]() |
Primemaster · GLSL统一评估 6 年前 |
![]() |
Deepak Sharma · 金属地址空间说明符“device” 6 年前 |
![]() |
jianjieluo · 在OpenGL 3.3中使用整数坐标绘制点? 6 年前 |