在此记录一下SharpGL最初创建的程序.完整工程在此. /// <summary> /// The main form class. /// </summary> public partial class SharpGLForm : Form { /// <summary> /// Initializes a new instance of the <see cref="SharpGLForm"/> class. /// </su
裁剪平面由方程Ax+By+Cz+D=0确定.所有满足[A B C D]M-1[Xe Ye Ze We]T>0的人眼坐标[Xe Ye Ze We]的点都位于该平面定义的半空间中,而该半空间以外的所有点都被裁剪掉 —— 摘自Redbook. 给场景中节点指定 experimentalClipPlanes=”true” 的属性标签,就可以启用该特性. 相对于X3D规范的默认描述 - 包括enabled与plane属性,X3DOM则引入了两项额外的属性:cappingStrength 及 capping
这是根据徐明亮<OpenGL游戏编程>书上光灯一节的一个例子改编的. 从这个例子可以学习到二次曲面的参数设置,程序中提供了两个画球的函数,一个是用三角形画出来的,一个是二次曲面构成的. 你会发现,跟三角形版本不同,二次曲面要做一些设定,否则画出来的球体无法接受光照. 先上代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.
视口变换主是将视景体内投影的物体显示到二维的视口平面上. 在计算机图形学中,它的定义是将经过几何变换, 投影变换和裁剪变换后的物体显示于屏幕指定区域内. 前面我们讨论过的透视投影, 正射投影, 它们都会产生一个视景体, 利用Viewport()函数, 就可以把这些视景体内投影的物体显示到屏幕指定的区域内. 默认情况下, 视口就是你用来绘制3D图像的整个矩形区域. Viewport的原型是: Viewport(int x, int y, int width, int height) 我们来用示意