[Texture]详解什么是Texture

前言

开篇废话

嗨咯大家好呀,时隔多日,小黑又和大家见面咯,最近懒癌犯了,而且技术上边倍受打击,所以回了家只想着睡觉休息,所以希望大家见谅见谅啦。

Unity版本

Unity 2020.4.4f1

正题

什么是Texture

中文翻译叫纹理,先说一下一个纹理是如何被渲染到屏幕上的 ,起初纹理存在硬盘(RAM)里,它被cpu解压缩(数据在cpu端它就只是二进制数据),如果想要显示它,那么数据将会被发送给(上传到cpugpu之间的通信可以理解成client和server之间的通信)GPU,gpu 将它放在 显存(VARM) 中,显存中有一块内存区域叫做RenderBuffer(渲染缓存)RenderBuffer只是数据缓存,它还不能用作Texture渲染,尽管它现在已经是一个texture了,在这里 texture等待着被渲染,当要渲染这个Texture时,会生成一个FrameBuffer(帧缓存),当这个帧缓存被添加到默认的帧缓存物体上FrameBufferObject时,它就会被绘制到屏幕,FrameBuffer指向的是显存中RenderBuffer的地址,简单的来说,RenderBuffer需要附加在FrameBuffer上,它才能是五颜六色的图片,否则它只是显存上的一堆数据,关于RenderBufferFrameBuffer可以看下边这些文章

Linux OpenGL 实践篇-10-framebuffer,
OpenGL ES学习之路(3.1) 着色器渲染过程、渲染方式、FrameBuffer与RenderBuffer.

最后总结下来就简单的几句话描述:

渲染过程其实非常复杂耗时,所幸有许多框架精心主导着这部分数据传输,微软有DirectX,苹果有Metal ,还有OpenGL,WebGL等.在unity中通过调用Graphic.Blit()来渲染一个Texture.。

注意

我相信很多人和我一样,一直以为Texture是左下角开始然后前往右上角渲染的,这其实是Unity给我们做了处理,事实可能并非如此哟,有兴趣的可以查一下。

最新文章

  1. netlink优势
  2. session、cookie浅见
  3. SparkSql 不支持Date Format (支持Timestamp)
  4. web 标准相关
  5. lucene 建立索引的过程
  6. CSS3 Transitions, Transforms和Animation使用简介与应用展示
  7. DeDe内容调用img
  8. TOGAF架构内容框架之架构制品(下)
  9. Java程序性能优化-读书笔记(一) 单例模式
  10. Android自定义View(LineBreakLayout-自动换行的标签容器)
  11. MySQL数据库聚合函数
  12. chm提取
  13. 任务调度工具Quartz入门笔记
  14. openssl中RSA数字签名的使用
  15. CSS设置table下tbody滚动条与thead对齐的方法
  16. CCCC L2-018. 多项式A除以B 直接上map,然后stack处理输出
  17. jq 自定义标注小组件 $.widget
  18. jdk更换不起作用问题
  19. hbase搭建web项目 报500错误 HTTP Status 500 - Unable to compile class for JSP
  20. GIT 详解2

热门文章

  1. ML-梯度下降法的详细推导与代码实现
  2. Python基础部分:12、文件光标移动(补充)
  3. Oracle收集统计信息的一些思考
  4. 嵌入式-Linux基础操作
  5. Linux Polkit本地权限提升漏洞(CVE-2021-4034)
  6. 大前端html基础学习02
  7. C温故补缺(十二):预编译器与头文件
  8. 关于deepin-wine或wine设置PATH环境变量的方法
  9. 使用Python实现多线程、多进程、异步IO的socket通信
  10. 【Java SE进阶】Day04 Map、Debug