SharpGL的视角及投影设置

分类: mobile123365sb 发布时间: 2025-08-08 02:46:15 作者: admin

#region 注释

////此函数主要是用来设定当前OpenGL操作的矩阵堆栈目标,

////由于OpenGL主要是一个大很大的状态机,运算都采用矩阵预算,

////通过MatrixMode可以设置当前操作的矩阵目标。

////一般,在需要绘制出对象或要对所绘制对象进行几何变换时,

////需要将变换矩阵设置成模型视图模式;而当需要对绘制的对象设置某种投影方式时,

////则需要将变换矩阵设置成投影模式;只有在进行纹理映射时,才需要将变换矩阵设置成纹理模式。

////mode参数说明:

////1、GL_MODELVIEW:指定矩阵堆栈目标是模型视图矩阵,可以在执行此命令后,输出自己的物体图形了,以及执行缩放、平移、旋转等几何变换。

////2、GL_PROJECTION:指定矩阵堆栈目标是投影矩阵,执行此命令后,可以设置投影效果参数,以及相机参数。简单点理解就是,设置绘制出来的图像呈现到屏幕的效果:视图、视角、成像规则等。

////3、GL_TEXTURE:指定矩阵堆栈目标是投影矩阵,执行此命令后,可以对纹理贴图进行操作。

//// 透视投影设置

//// 设置当前矩阵模式,对投影矩阵应用随后的矩阵操作

//gl.MatrixMode(OpenGL.GL_PROJECTION);

//// 重置当前指定的矩阵为单位矩阵,将当前的用户坐标系的原点移到了屏幕中心

//gl.LoadIdentity();

//// 创建透视投影变换

////简单点理解就是,设置相机镜头:广角大小、视图长宽比、视野近点、视野远点

////投影的目的是定义一个视景体,使得视景体外多余的部分不会显示

////投影包括透视投影和正式投影,后续详讲

////Perspective(double fovy, double aspect, double zNerar, double zFar);

////fovy是控制视野在XY平面的角度,范围是0--180度。你可以把它想象成是3dsmax中的相机镜头对应的视野参数。

////aspect是窗口的纵横比

////zNerar,zFar分别是近处和远处的裁面位置。

////gl.Perspective(30.0f, (double)Width / (double)Height, 5, 200.0);

////正交投影

////gl.Ortho(-2, 2, -2, 2, 0.01, 100.0);

////设置相机参数,三个参数一组,分别代表:相机位置、镜头正对位置、相机正向位置

////上述表示:相机放在(-5,5,-5)位置,镜头对着(0,0,0)点,相机正向与Y轴一致

//// 视点变换

////gl.LookAt(0, 0, -100, 0, 0, 0, 0, 1, 0);

//// 设置当前矩阵为模型视图矩阵

//gl.MatrixMode(OpenGL.GL_MODELVIEW);

#endregion

上一篇: 花椒农药残留 下一篇: 原神暝视龙无限飞天方法 原神暝视龙怎么无限飞天

相关文章

篮球世锦赛跟世界杯一样吗

篮球世锦赛跟世界杯一样吗

2025年春节假期安排:记得调整你的银行业务时间!

2025年春节假期安排:记得调整你的银行业务时间!

RCMA品牌主页

RCMA品牌主页

青岛啤酒多少毫升

青岛啤酒多少毫升

电竞圈隐藏“大佬”,七年没露过面圈内无人敢曝他照片,为什么?

电竞圈隐藏“大佬”,七年没露过面圈内无人敢曝他照片,为什么?

路堑的设计原则

路堑的设计原则