Opengl,three.js - 如何绘制圆形太阳

时间:2017-10-22 16:52:44

标签: javascript three.js glsl webgl shader

我使用three.js基于glsl-atmosphere(https://github.com/wwwtyro/glsl-atmosphere)处理大气着色器

首先,我将这个着色器应用于球体,我得到了非常好的结果:)

原始着色器没有太阳绘图元素,所以我只是使用

float spot = smoothstep(0.0, 1000.0, pMie)*10.0;

然后将此部分添加到return语句中:

return iSun * (spot*totalMie+pRlh * kRlh * totalRlh + pMie * kMie * totalMie);

enter image description here

从这个角度来看它看起来不错,但是当它靠近屏幕的边界时: enter image description here

它变成椭球......

我该怎么做才能解决它?

1 个答案:

答案 0 :(得分:1)

这种透视失真。您所需要的只是减少相机的视野。