OpenGL学习(六)纹理与obj格式模型的读取
目录
- 前言
- 纹理映射
- 纹理坐标
- 映射到简单正方形
- 读取图像
- 生成正方形数据
- 生成纹理
- 着色器贴纹理
- 读取obj文件
- obj文件格式
- 编写readObj函数进行读取
- 渲染一张桌子
- 完整代码
- c++
- 顶点着色器
- 片元着色器
前言
上一篇博客回顾:OpenGL学习(五)相机变换,透视投影与FPS相机
在上一篇博客中,我们利用相机变换矩阵,对场景进行透视投影,同时我们实现了可以自由飞翔的 FPS 相机。
迄今为止我们的渲染都是非常单调并且过时的,今天我们来引入一些现代化的东西,来丰富我们的场景。
首先我们会利用一张图片生成纹理,随后我们将这张图片贴在我们的物体上。这就像现代计算机游戏中,我们可以让艺术家们人为的制定一些图片,而不是由程序员大费周章的生成它。
在最后我们通过读取 obj 格式的模型并且创建对应的纹理,来绘制一些精美的模型。
⚠
该部分的绘制代码基于上一篇博客:OpenGL学习(五)相机变换,透视投影与FPS相机
博客内容因为篇幅关系,不会完整的列出所有的代码 完整代码会放在文章末尾
纹理映射
在正式开始之前,我们需要了解纹理映射的知识。在计算机游戏中,我们往往见到很多精美的模型,比如下图的水果摊,就有很多个
OpenGL学习(六)纹理与obj格式模型的读取相关推荐
- three.js和高德地图结合引入obj格式模型-效果演示
代码要放在web服务中去访问,three.js只有在服务中才能获取模型的材质图片!! 源代码地址: three.js和高德地图结合引入obj格式模型.zip-Javascript文档类资源-CSDN下 ...
- JMS学习六(ActiveMQ消息传送模型)
JMS学习六(ActiveMQ消息传送模型) ActiveMQ 支持两种截然不同的消息传送模型:PTP(即点对点模型)和Pub/Sub(即发布 /订阅模型),分别称作:PTP Domain 和Pub/ ...
- (01)VTK读取OBJ格式模型
前言 使用vtk可以读取的模型格式非常有限,在此适应vtk加载.stl格式的工业数据(使用SolidWorks输出的或者CAD输出的,后来为了减少模型容量,用上SolidWorks将stl格式转换成了 ...
- OpenGL学习笔记——纹理贴图
简单地说,纹理就是矩形的数据数组.例如,颜色数据.亮度数据.颜色和alpha数据.纹理数组中的单个值常常称为纹理单元(texel).纹理贴图之所以复杂,是因为矩形的纹理可以映射到非矩形的区域,并且必须 ...
- webgl学习六 纹理贴图
<html><head><title>纹理贴图</title><script type="text/javascript" s ...
- OBJ2GLTF使用,将obj格式模型转换为gltf
OBJ2GLTF下载地址 https://github.com/CesiumGS/obj2gltf 可以克隆,或者直接下载压缩包,或者使用npm安装,我是下载的压缩包. 安装依赖包 进入obj2glt ...
- 超图桌面版加载obj 3D模型 - 2
在 https://blog.csdn.net/bcbobo21cn/article/details/109041525 里,加载obj格式模型没有出来效果: 下面来看一下其他方法:当前用的版本是10 ...
- OpenGL学习脚印:模型加载初步-加载obj模型(load obj model)
写在前面 前面介绍了光照基础内容,以及材质和lighting maps,和光源类型,我们对使用光照增强场景真实感有了一定了解.但是到目前为止,我们通过在程序中指定的立方体数据,绘制立方体,看起来还是很 ...
- 【我的OpenGL学习进阶之旅】关于3D模型知识之:什么是obj文件和mtl文件
文章目录 一.学习3D模型的背景 二.3D模型效果展示 三.好奇3D模型文件是啥内容? 3.1 打开.obj文件 3.2 打开.obj文件 3.3 在外部使用查看3D模型的软件打开.obj文件 3.3 ...
- 使用blender做一个地球模型,贴上UV纹理,导出Obj格式
使用blender做一个地球模型,贴上UV纹理,导出Obj格式 Table of Contents 1 blender 1.1 图文教程 1.2 export to objloader, coordi ...
最新文章
- 【效率】如何有效提问
- UA MATH565C 随机微分方程III Ito Isometry
- 假设一个随机性和因果性的双重态
- 网络协议档案之ICMP、Ping、Traceroute
- 怼天怼地怼空气的Linus 喜欢和什么样的人一起工作?
- idea报错Class not found (在target中没有生成对应的class文件)
- 用面粉和醋洗头 让你的头发黑亮又浓密
- [ERR] 1227 - Access denied; you need (at least one of) the SUPER privilege
- 夏天这四件事会耗干你的阳气,尤其是第三件!
- 【评论】第一财经周刊:失败的埃洛普
- 22MySQL有哪些“饮鸩止渴”提高性能的方法笔记
- AASM rule of scoring sleep stages using EEG signal
- 这个春天,邀你一起探寻AI与青春的碰撞之力
- 苹果iPhone升级到10.3.3后,4G数据网络经常性断网无法连接???
- OSChina 周日乱弹 ——我对象整天在家打游戏,怎么办?
- Promise(一)介绍、fs读取文件、AJAX请求
- 回首2020,展望2021
- 的计算机课小说,6 计算机课
- 留几手:互联网创业到底是咋回事(说得真经典,创业者不创业的都值得一看)
- Log4j又发新版2.17.0,只有彻底搞懂漏洞原因,才能以不变应万变,