1、如果要通过openGL在iOS端显示.STL 3D模型,应该怎么做呢?
.stl是通用格式。一般3D软件可以将自己生成的模型保存为stl文件。如autocad、solidworks、ug、proe等,可以打开或保存为stl格式。 stl 是切片格式文件。一般这种格式用于输入3D打印机直接快速形成实体模型,在工业设计中比较常用。
2、 openGL 的 glReadPixels 是否在初始化时获取像素?
SetPixel 是一个 GDI 函数。它不是 opengl 函数,所以不能用 glReadPixel 读取。必须使用 GetPixel 来读取像素。
要学习这种填充算法,可以不使用 OpenGL 使用 GDI。这更简单。
如果要使用opengl,可以使用glDrawPixels和glReadPixels来读写像素,但这两个函数使用起来稍微复杂一些,需要先初始化OpenGL环境。
3、iosopengl像素:如何在OPENGL中读取和设置一个像素的颜色值
读写一个像素太慢,
opengl只支持读取一堆像素和写。
void
glReadPixels();
glDrawPixels();
当然你可以用它们来读写一个像素。只是有点矫枉过正。
void
glReadPixels(GLint
x,GLint
y,GLsizesi
width,GLsizei
height,
GLenum
format,GLenum
type,GLvoid
*pixel);
函数参数(x,
y)定义图像区域左下角的坐标,width和height分别是图像的高度和宽度, *pixel 是指向存储图像数据的数组的指针。参数格式表示读取的像素数据元素的格式(索引值或R、G、B、A值,如下表所示),参数类型表示每个元素的数据类型(另见下表)。
写入像素数据:
void
glDrawPixels(GLsizesi
width,GLsizei
height,GLenum
format,
GLenum
type,GLvoid
*像素) ;
函数参数格式和类型与glReadPixels()含义相同。 pixel 指向的数组包含要绘制的像素数据。请注意,必须在调用此函数之前设置当前光栅位置。如果当前光栅位置**,则给定该函数时不绘制图形,当前光栅位置保持**。
++++++++++++像素格式表++++++++++++++++++++++++
GL_INDEX
单色索引
GL_RGB
红色分量,然后绿色分量,然后蓝色分量
GL_RED
单个红色分量
GL_GREEN
单个绿色分量
GL_BLUE
单个蓝色分量分量
GL_ALPHA
单个Alpha值
GL_LUMINANCE_ALPHA
**个亮度分量,然后是Alpha值
GL_STENCIL_INDEX
单一模板索引
GL_DEPTH_COMPONENT
单一深度组件
+++++++++++++++++++++++++++ +++++++++++++++
+++++ ++++++++++++++
数据类型+++++++++++++++++++
GL_UNSIGNED_BYTE
无符号8 位整数
GL_BYTE
8 位整数
GL_BITMAP
无符号 8 位整数数组中的单个数字
GL_UNSIGNED_SHORT
无符号 16 位整数
GL_SHORT
16 位整数
GL_UNSIGNED_INT
无符号 32 位整数
GL_INT
32 位整数
GL_FLOAT
单精度浮点
++++++++++ +++ ++++++++++++++++++++++++++++++
图像的每个元素都是stor ed 在上表中给出的数据类型中。如果元素表示连续的值,例如红色、绿色、蓝色或亮度分量,则每个值都会按比例缩放以适应可用位数。例如,红色分量是介于 0、0 和 1、0 之间的浮点值。如果需要放在无符号单字节整数中,只保存8位精度,其他无符号整数类型也是如此。对于有符号数据类型,少了一位。例如,颜色索引存储在一个有符号的 8 位整数中,它的**位被 0xfe 掩码(即掩码包含 7 个 1)。如果类型为GL_FLOAT,则简单地将索引值转换为单精度浮点值,例如将索引17转换为17、0、同样如此。
原创文章,作者:zixun001,如若转载,请注明出处:http://www.meililyw.com/29377.html