這是新的 Vertex Shader:

void main() { 
	// 創造一個可修改的區域變數
	vec3 newPosition = position;
	// 將位置設定在一個球心在原點的球表面上
	newPosition.z = sqrt(uSphereRadius2 - newPosition.x * newPosition.x - newPosition.y * newPosition.y);
	// 平移表面讓中心保持在視野範圍內,可以跟上一步合併
	newPosition.z -= sqrt(uSphereRadius2);
	gl_Position = projectionMatrix * modelViewMatrix * vec4( newPosition, 1.0 );
	vNormal = normalize( normalMatrix * normal );
	vec4 mvPosition = modelViewMatrix * vec4( newPosition, 1.0 );
	vViewPosition = -mvPosition.xyz;
}