查看源代码 glu (wx v2.4.3)
OpenGL 的 Erlang 封装函数
标准 OpenGL API
本文档提供了完整OpenGL 参考页面的简要版本。
概述
函数
glu:build1DMipmapLevels/9
构建一个递减分辨率的预过滤一维纹理图子集,称为 mipmap。这用于纹理映射图元的抗锯齿。
glu:build1DMipmaps/6
构建一系列递减分辨率的预过滤一维纹理图,称为 mipmap。这用于纹理映射图元的抗锯齿。
glu:build2DMipmapLevels/10
构建一个递减分辨率的预过滤二维纹理图子集,称为 mipmap。这用于纹理映射图元的抗锯齿。
glu:build2DMipmaps/7
构建一系列递减分辨率的预过滤二维纹理图,称为 mipmap。这用于纹理映射图元的抗锯齿。
glu:build3DMipmapLevels/11
构建一个递减分辨率的预过滤三维纹理图子集,称为 mipmap。这用于纹理映射图元的抗锯齿。
glu:build3DMipmaps/8
构建一系列递减分辨率的预过滤三维纹理图,称为 mipmap。这用于纹理映射图元的抗锯齿。
glu:checkExtension/2
如果支持 ExtName
,则返回 ?GLU_TRUE
,否则返回 ?GLU_FALSE
。
glu:cylinder/6
绘制一个沿 z
轴方向的圆柱体。圆柱体的底部位于 z
= 0,顶部位于 z=height。与球体类似,圆柱体围绕 z
轴细分为切片,并沿 z
轴细分为堆栈。
glu:deleteQuadric/1
销毁二次曲面对象(使用 glu:newQuadric/0
创建)并释放其使用的任何内存。调用 glu:deleteQuadric/1
后,不能再次使用 Quad
。
glu:disk/5
在 z
= 0 平面上渲染一个圆盘。圆盘的半径为 Outer
,并包含一个半径为 Inner
的同心圆孔。如果 Inner
为 0,则不生成孔。圆盘围绕 z
轴细分为切片(如披萨切片),并围绕 z
轴细分为环(分别由 Slices
和 Loops
指定)。
glu:errorString/1
从 GL 或 GLU 错误代码生成错误字符串。该字符串为 ISO Latin 1 格式。例如,glu:errorString/1
(?GLU_OUT_OF_MEMORY
) 返回字符串 out of memory
。
glu:getString/1
返回一个指向描述 GLU 版本或支持的 GLU 扩展的静态字符串的指针。
glu:lookAt/9
创建一个从眼睛点、指示场景中心的参考点和 UP
向量导出的视图矩阵。
glu:newQuadric/0
创建并返回一个指向新的二次曲面对象的指针。在调用二次曲面渲染和控制函数时,必须引用此对象。返回值为 0 表示没有足够的内存来分配对象。
glu:ortho2D/4
设置二维正交视图区域。这等效于调用 gl:ortho/6
,其中 near=-1 和 far=1。
glu:partialDisk/7
在 z=0 平面上渲染一个部分圆盘。部分圆盘类似于完整圆盘,只是只包含从 Start
到 Start
+ Sweep
的圆盘子集(其中 0 度沿 +f2yf 轴,90 度沿 +x
轴,180 度沿 -y
轴,270 度沿 -x
轴)。
glu:perspective/4
指定进入世界坐标系的视锥体。通常,glu:perspective/4
中的纵横比应与关联的视口的纵横比匹配。例如,aspect=2.0 表示查看者的视角在 x
中是 y
中的两倍宽。如果视口的宽度是高度的两倍,它将显示没有失真的图像。
glu:pickMatrix/5
创建一个投影矩阵,该矩阵可用于将绘制限制为视口的一小部分区域。这通常用于确定光标附近正在绘制哪些对象。使用 glu:pickMatrix/5
将绘制限制为光标周围的一小部分区域。然后,进入选择模式(使用 gl:renderMode/1
)并重新渲染场景。所有本来会在光标附近绘制的图元都会被识别并存储在选择缓冲区中。
glu:project/6
使用 Model
、Proj
和 View
将指定的对象坐标转换为窗口坐标。结果存储在 WinX
、WinY
和 WinZ
中。返回值为 ?GLU_TRUE
表示成功,返回值为 ?GLU_FALSE
表示失败。
glu:quadricDrawStyle/2
指定使用 Quad
渲染的二次曲面的绘制样式。合法值如下:
glu:quadricNormals/2
指定使用 Quad
渲染的二次曲面所需的法线类型。合法值如下:
glu:quadricOrientation/2
指定使用 Quad
渲染的二次曲面所需的朝向类型。Orientation
的值如下:
glu:quadricTexture/2
指定是否应为使用 Quad
渲染的二次曲面生成纹理坐标。如果 Texture
的值为 ?GLU_TRUE
,则生成纹理坐标,如果 Texture
的值为 ?GLU_FALSE
,则不生成纹理坐标。初始值为 ?GLU_FALSE
。
glu:scaleImage/9
使用适当的像素存储模式缩放像素图像,以将数据从源图像解包并打包到目标图像中。
glu:sphere/4
绘制一个以原点为中心的给定半径的球体。球体围绕 z
轴细分为切片,并沿 z
轴细分为堆栈(类似于经度和纬度线)。
对多边形进行三角剖分,该多边形由 Normal
和 Vs
(顶点位置列表)指定。
glu:unProject/6
使用 Model
、Proj
和 View
将指定的窗口坐标映射到对象坐标。结果存储在 ObjX
、ObjY
和 ObjZ
中。返回值为 ?GLU_TRUE
表示成功;返回值为 ?GLU_FALSE
表示失败。
类型
函数
build1DMipmapLevels(Target, InternalFormat, Width, Format, Type, Level, Base, Max, Data)
查看源代码-spec build1DMipmapLevels(Target, InternalFormat, Width, Format, Type, Level, Base, Max, Data) -> i() when Target :: enum(), InternalFormat :: i(), Width :: i(), Format :: enum(), Type :: enum(), Level :: i(), Base :: i(), Max :: i(), Data :: binary().
glu:build1DMipmapLevels/9
构建一个递减分辨率的预过滤一维纹理图子集,称为 mipmap。这用于纹理映射图元的抗锯齿。
-spec build1DMipmaps(Target, InternalFormat, Width, Format, Type, Data) -> i() when Target :: enum(), InternalFormat :: i(), Width :: i(), Format :: enum(), Type :: enum(), Data :: binary().
glu:build1DMipmaps/6
构建一系列递减分辨率的预过滤一维纹理图,称为 mipmap。这用于纹理映射图元的抗锯齿。
build2DMipmapLevels(Target, InternalFormat, Width, Height, Format, Type, Level, Base, Max, Data)
查看源代码-spec build2DMipmapLevels(Target, InternalFormat, Width, Height, Format, Type, Level, Base, Max, Data) -> i() when Target :: enum(), InternalFormat :: i(), Width :: i(), Height :: i(), Format :: enum(), Type :: enum(), Level :: i(), Base :: i(), Max :: i(), Data :: binary().
glu:build2DMipmapLevels/10
构建一个递减分辨率的预过滤二维纹理图子集,称为 mipmap。这用于纹理映射图元的抗锯齿。
-spec build2DMipmaps(Target, InternalFormat, Width, Height, Format, Type, Data) -> i() when Target :: enum(), InternalFormat :: i(), Width :: i(), Height :: i(), Format :: enum(), Type :: enum(), Data :: binary().
glu:build2DMipmaps/7
构建一系列递减分辨率的预过滤二维纹理图,称为 mipmap。这用于纹理映射图元的抗锯齿。
build3DMipmapLevels(Target, InternalFormat, Width, Height, Depth, Format, Type, Level, Base, Max, Data)
查看源代码-spec build3DMipmapLevels(Target, InternalFormat, Width, Height, Depth, Format, Type, Level, Base, Max, Data) -> i() when Target :: enum(), InternalFormat :: i(), Width :: i(), Height :: i(), Depth :: i(), Format :: enum(), Type :: enum(), Level :: i(), Base :: i(), Max :: i(), Data :: binary().
glu:build3DMipmapLevels/11
构建一个递减分辨率的预过滤三维纹理图子集,称为 mipmap。这用于纹理映射图元的抗锯齿。
-spec build3DMipmaps(Target, InternalFormat, Width, Height, Depth, Format, Type, Data) -> i() when Target :: enum(), InternalFormat :: i(), Width :: i(), Height :: i(), Depth :: i(), Format :: enum(), Type :: enum(), Data :: binary().
glu:build3DMipmaps/8
构建一系列递减分辨率的预过滤三维纹理图,称为 mipmap。这用于纹理映射图元的抗锯齿。
glu:checkExtension/2
如果支持 ExtName
,则返回 ?GLU_TRUE
,否则返回 ?GLU_FALSE
。
-spec cylinder(Quad :: i(), Base :: f(), Top :: f(), Height :: f(), Slices :: i(), Stacks :: i()) -> ok.
glu:cylinder/6
绘制一个沿 z
轴方向的圆柱体。圆柱体的底部位于 z
= 0,顶部位于 z=height。与球体类似,圆柱体围绕 z
轴细分为切片,并沿 z
轴细分为堆栈。
-spec deleteQuadric(Quad :: i()) -> ok.
glu:deleteQuadric/1
销毁二次曲面对象(使用 glu:newQuadric/0
创建)并释放其使用的任何内存。调用 glu:deleteQuadric/1
后,不能再次使用 Quad
。
glu:disk/5
在 z
= 0 平面上渲染一个圆盘。圆盘的半径为 Outer
,并包含一个半径为 Inner
的同心圆孔。如果 Inner
为 0,则不生成孔。圆盘围绕 z
轴细分为切片(如披萨切片),并围绕 z
轴细分为环(分别由 Slices
和 Loops
指定)。
glu:errorString/1
从 GL 或 GLU 错误代码生成错误字符串。该字符串为 ISO Latin 1 格式。例如,glu:errorString/1
(?GLU_OUT_OF_MEMORY
) 返回字符串 out of memory
。
glu:getString/1
返回一个指向描述 GLU 版本或支持的 GLU 扩展的静态字符串的指针。
-spec lookAt(EyeX, EyeY, EyeZ, CenterX, CenterY, CenterZ, UpX, UpY, UpZ) -> ok when EyeX :: f(), EyeY :: f(), EyeZ :: f(), CenterX :: f(), CenterY :: f(), CenterZ :: f(), UpX :: f(), UpY :: f(), UpZ :: f().
glu:lookAt/9
创建一个从眼睛点、指示场景中心的参考点和 UP
向量导出的视图矩阵。
-spec newQuadric() -> i().
glu:newQuadric/0
创建并返回一个指向新的二次曲面对象的指针。在调用二次曲面渲染和控制函数时,必须引用此对象。返回值为 0 表示没有足够的内存来分配对象。
glu:ortho2D/4
设置二维正交视图区域。这等效于调用 gl:ortho/6
,其中 near=-1 和 far=1。
-spec partialDisk(Quad, Inner, Outer, Slices, Loops, Start, Sweep) -> ok when Quad :: i(), Inner :: f(), Outer :: f(), Slices :: i(), Loops :: i(), Start :: f(), Sweep :: f().
glu:partialDisk/7
在 z=0 平面上渲染一个部分圆盘。部分圆盘类似于完整圆盘,只是只包含从 Start
到 Start
+ Sweep
的圆盘子集(其中 0 度沿 +f2yf 轴,90 度沿 +x
轴,180 度沿 -y
轴,270 度沿 -x
轴)。
glu:perspective/4
指定进入世界坐标系的视锥体。通常,glu:perspective/4
中的纵横比应与关联的视口的纵横比匹配。例如,aspect=2.0 表示查看者的视角在 x
中是 y
中的两倍宽。如果视口的宽度是高度的两倍,它将显示没有失真的图像。
-spec pickMatrix(X :: f(), Y :: f(), DelX :: f(), DelY :: f(), Viewport :: {i(), i(), i(), i()}) -> ok.
glu:pickMatrix/5
创建一个投影矩阵,该矩阵可用于将绘制限制为视口的一小部分区域。这通常用于确定光标附近正在绘制哪些对象。使用 glu:pickMatrix/5
将绘制限制为光标周围的一小部分区域。然后,进入选择模式(使用 gl:renderMode/1
)并重新渲染场景。所有本来会在光标附近绘制的图元都会被识别并存储在选择缓冲区中。
-spec project(ObjX, ObjY, ObjZ, Model, Proj, View) -> {i(), WinX :: f(), WinY :: f(), WinZ :: f()} when ObjX :: f(), ObjY :: f(), ObjZ :: f(), Model :: matrix(), Proj :: matrix(), View :: {i(), i(), i(), i()}.
glu:project/6
使用 Model
、Proj
和 View
将指定的对象坐标转换为窗口坐标。结果存储在 WinX
、WinY
和 WinZ
中。返回值为 ?GLU_TRUE
表示成功,返回值为 ?GLU_FALSE
表示失败。
glu:quadricDrawStyle/2
指定使用 Quad
渲染的二次曲面的绘制样式。合法值如下:
glu:quadricNormals/2
指定使用 Quad
渲染的二次曲面所需的法线类型。合法值如下:
glu:quadricOrientation/2
指定使用 Quad
渲染的二次曲面所需的朝向类型。Orientation
的值如下:
-spec quadricTexture(Quad :: i(), Texture :: 0 | 1) -> ok.
glu:quadricTexture/2
指定是否应为使用 Quad
渲染的二次曲面生成纹理坐标。如果 Texture
的值为 ?GLU_TRUE
,则生成纹理坐标,如果 Texture
的值为 ?GLU_FALSE
,则不生成纹理坐标。初始值为 ?GLU_FALSE
。
-spec scaleImage(Format, WIn, HIn, TypeIn, DataIn, WOut, HOut, TypeOut, DataOut) -> i() when Format :: enum(), WIn :: i(), HIn :: i(), TypeIn :: enum(), DataIn :: binary(), WOut :: i(), HOut :: i(), TypeOut :: enum(), DataOut :: mem().
glu:scaleImage/9
使用适当的像素存储模式缩放像素图像,以将数据从源图像解包并打包到目标图像中。
glu:sphere/4
绘制一个以原点为中心的给定半径的球体。球体围绕 z
轴细分为切片,并沿 z
轴细分为堆栈(类似于经度和纬度线)。
-spec tesselate(Normal, [Vs]) -> {Triangles, VertexPos} when Normal :: vertex(), Vs :: vertex(), Triangles :: [integer()], VertexPos :: binary().
对多边形进行三角剖分,该多边形由 Normal
和 Vs
(顶点位置列表)指定。
该函数返回顶点索引列表和一个包含顶点位置数组的二进制文件(64 位本机浮点数)。它从 Vs
中的顶点开始,并可能在末尾包含新创建的顶点。
-spec unProject4(WinX, WinY, WinZ, ClipW, Model, Proj, View, NearVal, FarVal) -> {i(), ObjX :: f(), ObjY :: f(), ObjZ :: f(), ObjW :: f()} when WinX :: f(), WinY :: f(), WinZ :: f(), ClipW :: f(), Model :: matrix(), Proj :: matrix(), View :: {i(), i(), i(), i()}, NearVal :: f(), FarVal :: f().
glu:unProject/6
使用 Model
、Proj
和 View
将指定的窗口坐标映射到对象坐标。结果存储在 ObjX
、ObjY
和 ObjZ
中。返回值为 ?GLU_TRUE
表示成功;返回值为 ?GLU_FALSE
表示失败。
-spec unProject(WinX, WinY, WinZ, Model, Proj, View) -> {i(), ObjX :: f(), ObjY :: f(), ObjZ :: f()} when WinX :: f(), WinY :: f(), WinZ :: f(), Model :: matrix(), Proj :: matrix(), View :: {i(), i(), i(), i()}.
等效于 unProject4/9
。