目录

  • 前言
  • 纹理映射
    • 纹理坐标
  • 映射到简单正方形
    • 读取图像
    • 生成正方形数据
    • 生成纹理
    • 着色器贴纹理
  • 读取obj文件
    • obj文件格式
    • 编写readObj函数进行读取
  • 渲染一张桌子
  • 完整代码
    • c++
    • 顶点着色器
    • 片元着色器

前言

上一篇博客回顾:OpenGL学习(五)相机变换,透视投影与FPS相机

在上一篇博客中,我们利用相机变换矩阵,对场景进行透视投影,同时我们实现了可以自由飞翔的 FPS 相机。

迄今为止我们的渲染都是非常单调并且过时的,今天我们来引入一些现代化的东西,来丰富我们的场景。

首先我们会利用一张图片生成纹理,随后我们将这张图片贴在我们的物体上。这就像现代计算机游戏中,我们可以让艺术家们人为的制定一些图片,而不是由程序员大费周章的生成它。

在最后我们通过读取 obj 格式的模型并且创建对应的纹理,来绘制一些精美的模型。


该部分的绘制代码基于上一篇博客:OpenGL学习(五)相机变换,透视投影与FPS相机
博客内容因为篇幅关系,不会完整的列出所有的代码 完整代码会放在文章末尾

纹理映射

在正式开始之前,我们需要了解纹理映射的知识。在计算机游戏中,我们往往见到很多精美的模型,比如下图的水果摊,就有很多个

OpenGL学习(六)纹理与obj格式模型的读取相关推荐

  1. three.js和高德地图结合引入obj格式模型-效果演示

    代码要放在web服务中去访问,three.js只有在服务中才能获取模型的材质图片!! 源代码地址: three.js和高德地图结合引入obj格式模型.zip-Javascript文档类资源-CSDN下 ...

  2. JMS学习六(ActiveMQ消息传送模型)

    JMS学习六(ActiveMQ消息传送模型) ActiveMQ 支持两种截然不同的消息传送模型:PTP(即点对点模型)和Pub/Sub(即发布 /订阅模型),分别称作:PTP Domain 和Pub/ ...

  3. (01)VTK读取OBJ格式模型

    前言 使用vtk可以读取的模型格式非常有限,在此适应vtk加载.stl格式的工业数据(使用SolidWorks输出的或者CAD输出的,后来为了减少模型容量,用上SolidWorks将stl格式转换成了 ...

  4. OpenGL学习笔记——纹理贴图

    简单地说,纹理就是矩形的数据数组.例如,颜色数据.亮度数据.颜色和alpha数据.纹理数组中的单个值常常称为纹理单元(texel).纹理贴图之所以复杂,是因为矩形的纹理可以映射到非矩形的区域,并且必须 ...

  5. webgl学习六 纹理贴图

    <html><head><title>纹理贴图</title><script type="text/javascript" s ...

  6. OBJ2GLTF使用,将obj格式模型转换为gltf

    OBJ2GLTF下载地址 https://github.com/CesiumGS/obj2gltf 可以克隆,或者直接下载压缩包,或者使用npm安装,我是下载的压缩包. 安装依赖包 进入obj2glt ...

  7. 超图桌面版加载obj 3D模型 - 2

    在 https://blog.csdn.net/bcbobo21cn/article/details/109041525 里,加载obj格式模型没有出来效果: 下面来看一下其他方法:当前用的版本是10 ...

  8. OpenGL学习脚印:模型加载初步-加载obj模型(load obj model)

    写在前面 前面介绍了光照基础内容,以及材质和lighting maps,和光源类型,我们对使用光照增强场景真实感有了一定了解.但是到目前为止,我们通过在程序中指定的立方体数据,绘制立方体,看起来还是很 ...

  9. 【我的OpenGL学习进阶之旅】关于3D模型知识之:什么是obj文件和mtl文件

    文章目录 一.学习3D模型的背景 二.3D模型效果展示 三.好奇3D模型文件是啥内容? 3.1 打开.obj文件 3.2 打开.obj文件 3.3 在外部使用查看3D模型的软件打开.obj文件 3.3 ...

  10. 使用blender做一个地球模型,贴上UV纹理,导出Obj格式

    使用blender做一个地球模型,贴上UV纹理,导出Obj格式 Table of Contents 1 blender 1.1 图文教程 1.2 export to objloader, coordi ...

最新文章

  1. 【效率】如何有效提问
  2. UA MATH565C 随机微分方程III Ito Isometry
  3. 假设一个随机性和因果性的双重态
  4. 网络协议档案之ICMP、Ping、Traceroute
  5. 怼天怼地怼空气的Linus 喜欢和什么样的人一起工作?
  6. idea报错Class not found (在target中没有生成对应的class文件)
  7. 用面粉和醋洗头 让你的头发黑亮又浓密
  8. [ERR] 1227 - Access denied; you need (at least one of) the SUPER privilege
  9. 夏天这四件事会耗干你的阳气,尤其是第三件!
  10. 【评论】第一财经周刊:失败的埃洛普
  11. 22MySQL有哪些“饮鸩止渴”提高性能的方法笔记
  12. AASM rule of scoring sleep stages using EEG signal
  13. 这个春天,邀你一起探寻AI与青春的碰撞之力
  14. 苹果iPhone升级到10.3.3后,4G数据网络经常性断网无法连接???
  15. OSChina 周日乱弹 ——我对象整天在家打游戏,怎么办?
  16. Promise(一)介绍、fs读取文件、AJAX请求
  17. 回首2020,展望2021
  18. 的计算机课小说,6 计算机课
  19. 留几手:互联网创业到底是咋回事(说得真经典,创业者不创业的都值得一看)
  20. Log4j又发新版2.17.0,只有彻底搞懂漏洞原因,才能以不变应万变,

热门文章

  1. 中国重工[601989]
  2. 永洪BI配置GIS地图的方法
  3. 有专门收C语言答案的软件吗,C语言二级考试题库APP
  4. oracle11g怎么打开oem,oracle11g启动OEM
  5. Hydra(弱密码爆破)使用教程
  6. c语言运算符优先级(c语言运算符优先级由高到低的顺序)
  7. STM32F107VCTx I2C通信
  8. web前端笔试试题一(含答案)
  9. Android开发艺术探索知识回顾——第0章 书本内容介绍
  10. 【人工智能】无人车系统仿真软件-PreScan