opengl纹理映射的学习总结

2023-11-16

 1.不同的滤波方式的效果区别

使用Nearest滤波纹理的效果:看起来很斑驳

使用MipMapped的效果:看起来很平滑

 

2.

void glTexImage1D

 (GLenum  

 target,

 

GLint  

level,

 

GLint  

internalFormat,

 

GLsizei  

width,

 

GLint  

border,

 

GLenum  

format,

 

GLenum  

type,

 

const GLvoid *  

data);

 

void glTexImage2D(

GLenum  

target,

 

GLint  

level,

 

GLint  

internalFormat,

 

GLsizei  

width,

 

GLsizei  

height,

 

GLint  

border,

 

GLenum  

format,

 

GLenum  

type,

 

const GLvoid *  

data);


   

void glTexImage3D(

GLenum  

target,

 

GLint  

level,

 

GLint  

internalFormat,

                      

GLsizei

width,

GLsizei

height,

 

GLsizei  

depth

 

GLint  

border,

 

GLenum  

format,

 

GLenum  

type,

 

const GLvoid *  

data);

 


这三个opengl函数用于从一个类存缓冲加载纹理数据,它们告诉了opengl如何解析data参数所指向的纹理数据。Opengl从data所指向的位置复制纹理信息,这种数据复制的代价是很高的。

九个参数:

(1).      target

对应了GL_TEXTURE_1D或者GL_TEXTURE_2D或者GL_TEXTURE_3D

 

(2).      internalFormat

GL_ALPHA              按照alpha值来存储纹理单元

GL_LUMINANCE          按照亮度值来存储纹理单元

GL_LUMINANCE_ALPHA    按照亮度和alpha值来存储纹理单元

GL_RGB                 按照RGB成分存储纹理单元

GL_RGBA                按照RGBA成分来存储纹理单元

 

(3.)      width, height, depth指定被加载纹理的宽度,高度,深度。这些值必须是2的指数。并不要求三维都相等。避免使用非2的整数次方的纹理。

 

(4).      border边界允许我们对边界处的纹理进行设置,对它的宽度,高度深度进行扩展。对纹理过滤的处理中,纹理边界扮演了重要的角色。

 

(5). format

GL_RGB                

GL_RGBA 

GL_BGR

GL_BGRA

GL_RED

GL_GREEN

GL_BLUE

GL_ALPHA              

GL_LUMINANCE          

GL_LUMINANCE_ALPHA  

GL_STENCIL_INDEX              每个像素包含单一的模板索引

GL_DEPTH_COMPONENT         每个像素包含单一的深度成分

 

(6). type

 GL_UNSIGNED_BYTE            每种颜色的成分是8个无符号整数

 GL_BYTE

GL_BITMAP                   单个位、无颜色数据,和glBitmap相同

GL_UNSIGNED_SHORT

GL_SHORT

GL_UNSIGNED_INT

GL_INT

GL_FLOAT

CL_UNSIGNED_BYTE_3_2_2        经过包装的RGB


通过glTexImage函数所加载的纹理数据将经历(与像素和图像处理管线相同的)过程:像素包装,像素缩放,颜色表,积卷等操作

3.

void glTexSubImage2D(

GLenum  

target,

 

GLint  

level,

 

GLint  

xoffset,

 

GLint  

yoffset,

 

GLsizei  

width,

 

GLsizei  

height,

 

GLenum  

format,

 

GLenum  

type,

 

const GLvoid *  

data);

这个函数用于更新纹理,如果一个已经加载的纹理不再需要,可以被替换,可以全部替换也可以只替换一部分,替换的一个纹理图往往比glTexImage加载一个新纹理要快。Width和height只能是替换纹理真实的大小,如果对width和height的值进行改变会导致替换纹理失真。如果原纹理的大小和替换纹理的大小相同,原纹理将完全被替换。如果原纹理比替换纹理还小将看不到替换效果。如果原纹理比替换纹理大将替换原纹理的一部分,1/4、1/8…..


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

opengl纹理映射的学习总结 的相关文章

  • CSS 中的倒圆角?

    我有一个CSS代码 moz border radius topleft 50px 我得到结果 是否有可能像这样给予 在现代浏览器中 您可以使用mask image aux container width 100px height 100px
  • 在 silverlight 中将对象(即任何对象,如人员、雇员)转换为 byte[]

    我有一个 person 对象 需要将其存储为 byte 并再次检索该 byte 并转换为 person 对象 并且 BinaryFormatter 在 silverlight 中不可用 由于 t0mm13b 提到的命名空间不是 Silver
  • 我如何获取字节数组的前“n”个元素并将它们直接转换为字符串?

    我有一个由 1024 个元素组成的字节数组 我想将其分解为不同的字符串私有成员 例如 前 9 个字节用于名称 接下来的 12 个字节用于用户 ID 等 无需将整个字节数组转换为字符串 然后使用子字符串方法 有什么方法可以将数组中的一系列字节
  • 如何将字节字符串拆分为单独的部分

    我一直在尝试创建波形图像 并且从 wav文件使用song wave open and song readframes 1 返回 b x00 x00 x00 x00 x00 x00 我怎样才能把它分成三个独立的部分 例如b x00 x00 b
  • C# 将字节转换为字符串并写入txt文件

    例如我该如何转换byte b new byte 1 b 1 255串起来 我需要一个值为 255 的字符串变量string text 255 然后将其存储在文本文件中 从字节开始 byte b new byte 255 string s E
  • CSS 将边框应用于云形状?

    我通过 CSS3 使用不同的方式画了一朵云div我正在尝试为整个形状添加边框 但我遇到了麻烦 因为每个形状都有自己的边框 如何将边框应用于整个云 HTML div div div div div div div div CSS margin
  • 使用CSS使表格外边框颜色与单元格边框颜色不同

    我想使用 CSS 设置表格外边框的颜色 那么内部单元格会有不同的边框颜色 我创建了这样的东西 table border collapse collapse border 1px solid black table td border 1px
  • C# 没有边界检查的 byte[] 比较

    我正在寻找性能高效的方法来比较两个 byte 是否相等 大小超过 1 MB 因此每个数组元素的开销应最小化 我的目标是超越SequenceEqual http msdn microsoft com en us library bb34856
  • CSS/HTML:在输入字段周围创建发光边框

    我想为我的表单创建一些像样的输入 并且我真的很想知道 TWITTER 如何在输入周围制作发光边框 Twitter 边框示例 图片 我也不太知道如何创建圆角 干得好 glowing border border 2px solid dadada
  • 围绕图中的点绘制圆圈

    我有两个矩阵 timeline 0 0008 0 0012 0 0016 0 0020 0 0024 0 0028 原始数据 79 8400 69 9390 50 0410 55 5082 34 5200 37 4486 31 4237 2
  • 使用 Cp500 编码陌生事物(LF 和 NEL)

    最近 在从字节转换为字符串 然后再从字符串转换为字节的过程中 我遇到了 Cp500 EBCDIC 编码的奇怪问题 问题在于一个特定的角色就是在这个转变过程中 被转变为这个角色 下面的代码验证了这一点 byte b25 0x25 byte b
  • 快速字符串到 byte[] 的转换

    目前我正在使用此代码将字符串转换为字节数组 var tempByte System Text Encoding UTF8 GetBytes tempText 我在我的应用程序中经常调用这一行 并且我真的很想使用更快的 如何比默认的 GetB
  • C++ - 通过添加字节整数来向前移动 char 指针是否合法/推荐?

    我正在寻找一些方法来将指针推进到压缩档案中的文件开头 我有一个指向已读入内存的文件开头的字符指针 归档目录包含每个文件的偏移量 是否合法 建议这样说 char beginning Imagine this is assigned to th
  • 从 Javascript 检测真实的边框、填充和边距

    有没有办法从 Javascript 代码中检测元素的真实边框 填充和边距 如果你看下面的代码
  • 如何在Java中读取文件的最后“n”个字节

    如何在不使用 RandomAccessFile 的情况下从文件中读取最后 n 个字节 我的文件中的最后 6 个字节包含写回文件时的重要信息 我需要写入原始文件 然后将最后 6 个字节附加到其他地方 有什么指导吗 谢谢 你必须使用随机存取文件
  • 悬停时显示表格行大纲

    我试图在悬停时突出显示表格行的边框 不幸的是 这仅适用于第一行单元格 较低的行有一个不改变颜色的边框 我尝试过使用outline但它不太适合 hover在网络套件中 http jsfiddle net S9pkM 2 http jsfidd
  • html或css中的倾斜对角线?

    I want to make a Table like this 是否可以添加一个倾斜的对角边框在表中 基于CSS3 线性渐变 http dev w3 org csswg css images 3 linear gradients解决方案
  • c++ - 将“std::vector”的内容保存到文件

    我使用 writeFileBytes 下面的函数来写入a的内容std vector
  • 为“facet_wrap”中的每列创建边框和标题

    我想在每个方面周围放置带有标签和标题的黑色边框facet wrap 与此类似的东西 样本数据 library tidyverse mtcars gt mutate gear factor gear levels c 4 3 5 gt ggp
  • 如何在python中附加两个字节?

    说你有b x04 and b x00 你如何将它们组合起来b x0400 使用Python 3 gt gt gt a b x04 gt gt gt b b x00 gt gt gt a b b x04 x00

随机推荐