| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> 07 高级纹理 opengl 超级宝典 -> 正文阅读 |
|
[游戏开发]07 高级纹理 opengl 超级宝典 |
多重纹理glActiveTexture(GL_TEXTURE0) glBindTextrue(GL_TEXTURE_2D, textrue0) glActiveTextrue(GL_TEXTURE1) glBindTextrue(GL_TEXTURE_2D, textrue1) 点精灵的核心代码glEnable(GL_PROGRAM_POINT_SIZE) fragColor = textrue(pointImage, gl_PointCoord) glPointParameteri(GL_POINT_SPRITE_COORD_ORIGIN, GL_LOWER_LEFT) 加载2D纹理数组glTexture3D(target, level, internalformat, width, height, depth, border, format, type, void *data); 一次性加载一个2D图像数组并不方便,如果将data = NULL Opengl 会保留纹理存储空间,将它们保持为未初始化状态 for(i to n ) glTexSubImage3D(GL_TEXTURE_2D_ARRAY, 0, 0, 0, i,width, height, 1, GL_RGBA, GL_UNISIGNED_BYTE, pBit); vertex.vs { ????????out vec3 moonCoords ????????moonCoord.st = vTexCoord.st ????????moonCoord.p = time } fragment.fs { ????????in vec3 moonCoords; ? ? ? ? fragColor = texture2DArray(moonImage,? moonCoords.stp) } 纹理代理glTexImage2D(GL_PROXY_TEXTURE_2D, 0, GL_RGBA, 2048, 4096, 0, GL_BGRA,? ? ? ? ? GL_UNSIGNED_BYTE, NULL); glGetTexLevelParameter(GL_PROXY_TEXTRUE_2D, 0, GL_TEXTURE_HEIGHT, &height); 根据这 height 值查看显卡是否支持4096的高度。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/16 18:35:53- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |