OpenGL中半球形天空的绘制

不解释,看代码:

public class Dome {
	
	private static final double DTOR=Math.PI/180;
	private int horizonalSteps,portraitSteps;
	private float radius;					//半径
	private Point3f[][][] vertex;			//顶点坐标
	private Point2f[][][] texCoords;		//纹理坐标
	
	/**
	 * 以原点为球心,绘制半球形天空
	 * @param radius 球的半径
	 * @param horizonalSteps 水平方向分割步数
	 * @param portraitSteps 垂直方向分割步数
	 */
	public Dome(float radius, int horizonalSteps, int portraitSteps) {
		this.horizonalSteps=horizonalSteps;
		this.portraitSteps=portraitSteps;
		this.radius=radius;
		float dtheta=(float)360/horizonalSteps;	//水平方向步增
		float dphi=(float)90/portraitSteps;		//垂直方向步增
		vertex=new Point3f[portraitSteps][][];
		texCoords=new Point2f[portraitSteps][][];
		for(int i=0,phi=0;i

 

你可能感兴趣的:(OpenGL)