/// <summary>
/// The Clip Plane Name
/// </summary>
public enum ClipPlaneName : uint
{
ClipPlane0 = OpenGL.GL_CLIP_PLANE0,
ClipPlane1 = OpenGL.GL_CLIP_PLANE1,
ClipPlane2 = OpenGL.GL_CLIP_PLANE2,
ClipPlane3 = OpenGL.GL_CLIP_PLANE3,
ClipPlane4 = OpenGL.GL_CLIP_PLANE4,
ClipPlane5 = OpenGL.GL_CLIP_PLANE5
}
/// <summary>
/// The Cull Face mode.
/// </summary>
public enum FaceMode : uint
{
/// <summary>
///
/// </summary>
Front = OpenGL.GL_FRONT,
FrontAndBack = OpenGL.GL_FRONT_AND_BACK,
Back = OpenGL.GL_BACK,
}
/// <summary>
/// The Data Type.
/// </summary>
public enum DataType : uint
{
Byte = OpenGL.GL_BYTE,
UnsignedByte = OpenGL.GL_UNSIGNED_BYTE,
Short = OpenGL.GL_SHORT,
UnsignedShort = OpenGL.GL_UNSIGNED_SHORT,
Int = OpenGL.GL_INT,
UnsignedInt = OpenGL.GL_UNSIGNED_INT,
Float = OpenGL.GL_FLOAT,
TwoBytes = OpenGL.GL_2_BYTES,
ThreeBytes = OpenGL.GL_3_BYTES,
FourBytes = OpenGL.GL_4_BYTES,
/// <summary>
///
/// </summary>
Double= OpenGL.GL_DOUBLE
}
/// <summary>
/// The depth function
/// </summary>
public enum DepthFunction : uint
{
Never = OpenGL.GL_NEVER,
Less = OpenGL.GL_LESS,
Equal = OpenGL.GL_EQUAL,
LessThanOrEqual = OpenGL.GL_LEQUAL,
Great = OpenGL.GL_GREATER,
NotEqual = OpenGL.GL_NOTEQUAL,
GreaterThanOrEqual = OpenGL.GL_GEQUAL,
Always = OpenGL.GL_ALWAYS,
}
ClipPlaneName 枚举
该枚举定义了 OpenGL 中的裁剪平面名称。裁剪平面用于裁剪几何体,只有位于裁剪平面内的部分才会被渲染。
ClipPlane0 (GL_CLIP_PLANE0):第 0 号裁剪平面。
ClipPlane1 (GL_CLIP_PLANE1):第 1 号裁剪平面。
ClipPlane2 (GL_CLIP_PLANE2):第 2 号裁剪平面。
ClipPlane3 (GL_CLIP_PLANE3):第 3 号裁剪平面。
ClipPlane4 (GL_CLIP_PLANE4):第 4 号裁剪平面。
ClipPlane5 (GL_CLIP_PLANE5):第 5 号裁剪平面。
OpenGL 通常支持至少 6 个裁剪平面,具体数量取决于硬件和驱动程序。
FaceMode 枚举
该枚举定义了 OpenGL 中的多边形剔除模式。剔除是指根据多边形的朝向决定是否渲染该多边形,常用于优化性能。
Front (GL_FRONT):仅剔除正面(朝向观察者的多边形)。
FrontAndBack (GL_FRONT_AND_BACK):剔除正面和背面(即不渲染任何多边形)。
Back (GL_BACK):仅剔除背面(背向观察者的多边形)。
DataType 枚举
该枚举定义了 OpenGL 中使用的数据类型,通常用于指定缓冲区数据或顶点属性的数据类型。
Byte (GL_BYTE):8 位有符号整数。
UnsignedByte (GL_UNSIGNED_BYTE):8 位无符号整数。
Short (GL_SHORT):16 位有符号整数。
UnsignedShort (GL_UNSIGNED_SHORT):16 位无符号整数。
Int (GL_INT):32 位有符号整数。
UnsignedInt (GL_UNSIGNED_INT):32 位无符号整数。
Float (GL_FLOAT):32 位浮点数。
TwoBytes (GL_2_BYTES):2 字节数据。
ThreeBytes (GL_3_BYTES):3 字节数据。
FourBytes (GL_4_BYTES):4 字节数据。
Double (GL_DOUBLE):64 位双精度浮点数。
DepthFunction 枚举
该枚举定义了深度测试函数。深度测试用于决定是否渲染某个片段(即像素),基于其深度值与深度缓冲区中已有值的比较结果。
Never (GL_NEVER):永远不通过深度测试。
Less (GL_LESS):当片段的深度值小于深度缓冲区中的值时通过。
Equal (GL_EQUAL):当片段的深度值等于深度缓冲区中的值时通过。
LessThanOrEqual (GL_LEQUAL):当片段的深度值小于或等于深度缓冲区中的值时通过。
Great (GL_GREATER):当片段的深度值大于深度缓冲区中的值时通过。
NotEqual (GL_NOTEQUAL):当片段的深度值不等于深度缓冲区中的值时通过。
GreaterThanOrEqual (GL_GEQUAL):当片段的深度值大于或等于深度缓冲区中的值时通过。
Always (GL_ALWAYS):永远通过深度测试。
总结
ClipPlaneName:用于指定裁剪平面,控制几何体的裁剪范围。
FaceMode:用于指定多边形剔除模式,优化渲染性能。
DataType:用于指定 OpenGL 中使用的数据类型,常见于缓冲区或顶点属性的定义。
DepthFunction:用于指定深度测试函数,控制片段的可见性。
这些枚举在 OpenGL 编程中非常常用,用于控制渲染管线的各种行为。