cg&图形学
文章平均质量分 90
计算机图形学基础
微小的鱼
这个作者很懒,什么都没留下…
展开
-
移动端的HSR技术
主要是介绍移动端的HSR技术以及early-z技术,它们都是为了解决overdraw问题,也会提到涉及HSR的on-chip内存。原创 2024-06-22 19:00:57 · 840 阅读 · 0 评论 -
图形管线(一)后处理阶段 alpha测试 模版测试 深度测试 混合
在实时渲染中不管是TA、游戏特效等等,工作中或者面试经常用到或者问道,所以本人今天来梳理总结一番!光栅化一般分为 三大阶段,应用程序阶段->几何阶段->光栅化阶段,也可以四大阶段 应用程序阶段->几何阶段->光栅化阶段->后处理阶段.........原创 2022-07-19 02:54:53 · 1432 阅读 · 0 评论 -
图形学的三种拾取实现与比较
计算机图形学的几种拾取原理、实现及其比较。原创 2022-04-26 23:06:10 · 2729 阅读 · 0 评论 -
透明的渲染
透明分为两种:透明测试(Alpha Test),透明混合(Alpha blending),其中透明度测试只是根据Alpha通道 阈值把对应的像素discard丢弃,得到的并不是真正的透明!Alpha blending是得到真正的透明.原创 2022-01-27 18:36:10 · 5652 阅读 · 0 评论 -
曲面细分(subdivision)&曲面细分着色器&GPU的LOD
曲面细分是指将一个模型的面合理的分成更多小的面,从而提升模型精度,提高渲染效果 曲面简化是指将一个模型的面合理的合成更少的面,从而降低模型精度,为特定情形下提供使用(如LOD技术) 。这一过程是可以在CPU中完成的,但组织多个点的动态添加和删除,并且更新同步到着色器所需的vb中,这一过程比较消耗性能,并且实现起来也不能算是特别容易的事情。一个比较理想的做法应该是在GPU硬件中完成相关的操作(曲面细分做色器),并且给用户提供一些可编程的接口。曲面细分着色器(GPU):带着这一目的,DirectX 11引入原创 2021-12-07 00:15:09 · 3308 阅读 · 0 评论 -
合批/批量渲染 (Batch)、实例化Instancing
可以简单的理解为:批量渲染是通过减少CPU向GPU发送渲染命令(DrawCall)的次数,以及减少GPU切换渲染状态的次数,尽量让GPU一次多做一些事情,来提升逻辑线和渲染线的整体效率。但这是建立在GPU相对空闲,而CPU把更多的时间都耗费在渲染命令的提交上时,才有意义。合批最重要的前提:材质必须相同!!!合批是节省了CPU的相关准备工作的工作量。合批后,经过VS,PS,尝试测试,模板测试后,此时已没有了纹理,顶点,索引的概念,只剩下一个个孤立的像素,各像素间没有任何关系了。像素送到GPU后进行批原创 2021-11-15 19:32:27 · 7936 阅读 · 0 评论 -
GPU的架构(一)
gpu的驱动框架:1、窗口标准的实现是与操作系统强相关的,它为图形渲染提供目标内存。一般来说,只要支持的标准不变,操作系统更换/升级,对驱动的代码影响就只限在窗口这一块。2、编译器用于编译shader或kernel,编译kernel需要用llvm预编译,编译器会大一些。低端GPU的编译器特别容易出现各种语法不支持,让写shader的人痛苦万分。3、通用计算的实现就是把kernel编译后转成任务扔给内核去跑,相对简单。4、图形渲染的实现则需要考虑到一帧中可能有重复渲染/过度绘制的情况,为了这方面做优原创 2021-09-05 06:13:54 · 12228 阅读 · 0 评论 -
移动端GPGPU 架构
最近在面试的时候发现移动端现在是越来越热,然后就有被问到GPU的框架什么的PC端的这个可以参考这个:GPU硬件架构及其运行机制移动端的与PC端有很大的区别!比如移动端可以说没有独立的显存只有些寄存器cache 和on-chip memory!立即渲染模式IMR :IMR(Immediate Mode Rendering)就如字面意思一样——提交的每个渲染要求都会立即开始,这是一种简单而又粗暴的思路,优点缺点都非常明显,如果不用为性能担忧,这种方式会很省事,但是IMR的渲染实行的是无差别对待,那些遮蔽处原创 2021-05-10 10:34:04 · 821 阅读 · 2 评论 -
Z-Fighting问题解决方案实例(一)
三角形mesh出错边拓扑结构乱掉导致的,这里大量的建筑模型都出现问题),再重面触发被动fitting! 既然由重面引发的,解决重面就可以Z-Fighting啦。Z-Buffer使用深度缓冲(Z-Buffer),Z-Buffer又名 Depth buffer来完成场景可见性计算,即确定场景哪部分可见,哪部分不可见。深度缓冲(Z-Buffer)是一个二维数组,其中的每一个元素对应屏幕上的一个像素,如果场景中的两个模型在同一个像素生成渲染结果,那么图形处理卡就会比较二者的深度,并且保留距离观察者较近的物体.原创 2021-02-02 11:06:13 · 7280 阅读 · 7 评论 -
Mesh平滑处理的几种算法比较
平滑(smooth)3D平滑处理是一种减少锯齿(阶梯状线条)的技术。 平滑处理可设置为有利于提高系统性能或改进图象质量。(功能可以查看3Dmaxblender等等)网格平滑属于数字几何处理领域的问题,计算机图形学和计算机辅助设计中,用多边形网格可以表示复杂的三维实体。随着三维扫描和曲面重建技术的发展,得到这些实体表面的多边形网格表示已经不是难事,但所得到的表面往往包含含噪声。在形状设计领域,在散乱点拟合和光滑形伏、纹理映射等应用领域,都有对平滑曲面的极大需求。故产生了网格平滑这一个研究点。如下图原创 2021-01-05 00:06:49 · 16439 阅读 · 2 评论 -
纹理优化二-模型贴图优化
在大型的场景下,不然城市模型或者建筑等等顶点face居多单单做减面还是远远不够的,但是单单这里还远远不够,比如给的模型一个房子就非常多的纹理然而很多时候贴图文件往往大于模型。此时则需要将模型和贴图分开进行处理(建模时分开输出一个打好 UVtag 纹理坐标的“白模”和需要用到的纹理贴图)。下面介绍如何优化用于应用程序渲染的贴图文件。转载 2020-12-14 11:39:42 · 2492 阅读 · 0 评论 -
gltf格式一、简介
GLTF介绍:glTF 称为“ 3D 界的 JPEG”,使用了更优的数据结构,为应用程序实时渲染而生。glTF 有以下几大特点:由现有 OpenGL 的维护组织 Khronos 推出,目的就是为了统一用于应用程序渲染的 3D 格式,更适用于基于 OpenGL 的引擎;减少了 3D 格式中除了与渲染无关的冗余信息,最小化 3D 文件资源;优化了应用程序读取效率和和减少渲染模型的运行时间;支持 3D 模型几何体、材质、动画及场景、摄影机等信息(因为gltf已经把整个场景都放到里面去了所以当然支持动画原创 2020-12-10 11:24:44 · 16368 阅读 · 0 评论 -
纹理优化一、纹理压缩
通常无人机拍摄生成的地形模型文件较大(倾斜摄影),要将三维模型显示到网页上,先要压缩模型(可以减面删除重复点、重复的面),前面这些已经实现了再来就是进行的纹理压缩!像我们做CIM,智慧城市场景主要是室外当然也有部分室内的功能与展示那一部分是BIM只有在高精度模型才能使用 BIM 的功能,平时比如漫游或者在城市模型比如广州这种特大城市场景里面非常多的模型建筑数据消耗内存还有卡顿问题资源的管理与优化是非常重要的以及使用LOD,来回切换高精度与低精度的模型,但是单单这里还远远不够比如给的模型一个房子就非常多的纹理原创 2020-12-07 19:13:19 · 3361 阅读 · 2 评论 -
三角网格(Triangle Mesh)与四角mesh网格理解总结
由于公司项目要求用opengl实现减面与曲面细分,所以整理总结了一下三角网与四角网的一般特性与特点优缺点等等~原创 2020-11-09 22:59:18 · 23809 阅读 · 2 评论 -
网格简化 一、 常见减面算法简介
公司项目需求所以最近来研究减面,这里主要是大概简单的简述减面的思维等等还有几种常见的算法!原创 2020-10-16 00:30:17 · 6335 阅读 · 0 评论 -
古老的3D格式--obj简介
obj文件是3D模型文件格式。由Alias|Wavefront公司为3D建模和动画软件"Advanced Visualizer"开发的一种标准,适合用于3D软件模型之间的互导,也可以通过Maya读写。OBJ3.0文件格式支持直线(Line)、多边形(Polygon)、表面(Surface)和自由形态曲线(Free-form Curve)。直线和多角形通过它们的点来描述,曲线和表面则根据它们的控制点和依附于曲线类型的额外信息来定义,这些信息支持规则和不规则的曲线,包括那些基于贝塞尔曲线(Bezier)、B样原创 2020-09-16 19:12:37 · 1313 阅读 · 0 评论 -
osg osgb osgt格式
主要是通过介绍osg格式举一反三理解osgb与osgt格式。原创 2020-09-09 22:24:25 · 5533 阅读 · 0 评论 -
directX 简介
DirectXDirectX(Direct eXtension,简称DX)是由微软公司创建的多媒体编程接口,是一种应用程序接口(API)。DirectX可以让以windows为平台的游戏或多媒体程序获得更高的执行效率,加强3D图形和声音效果,并提供设计人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件来写不同的驱动程序,也降低用户安装及设置硬件的复杂度。Microsoft DirectX 是这样一组技术:它们旨在使基于Windows 的计算机成为运行和显示具有丰富多媒体元素(例如全色图形、视频、原创 2020-09-03 19:14:40 · 4463 阅读 · 0 评论 -
openGL、D3D、vulkan区别简介
opengl,Directx,vulkan 基本是bai并列的东西. 区别是背后的du推动力不同, opengl是个zhi开源大企业组dao织弄得(组织叫 Khronos), DX是微软自己搞的. vulkan也是Khronos搞得, 准备取代opengl,但是需要时间. 因为框架是多线程的,据说比GL效率高20%.;(今天主要重点介绍的是D3D与Vulkan)原创 2020-08-27 20:56:20 · 11465 阅读 · 4 评论 -
three.js cesium badylon.js 以及webgl区别
WebGL首先OpenGL ES是基于OpenGl的嵌入式阉割版,常用于安卓等等的移动端,而为了能让现代的web也能直接使用显卡、3D、渲染等等又基于Opengl ES 在H5中开发出了WebGL;WebGL使得在支持HTML 的 canvas 标签的浏览器中,不需要安装任何插件,便可以使用基于OpenES 2.0 的 API 在 canvas 中进行2D和3D渲染。WebGL程序包括用 JavaScript 写的控制代码,以及在图形处理单元(GPU, Graphics Processing Unit)中原创 2020-08-27 00:30:18 · 8186 阅读 · 4 评论 -
AABB与OOB包围盒子
以前做过AABB这个简单没什么好说的主要是OBB比较复杂,需要数学功底更厚!想不到我们还可以基于OBB做LOD 这个我第一次听说很不理解不过现在也大致了解了原创 2020-06-30 02:38:12 · 2679 阅读 · 0 评论 -
基于OSG讲解一下LOD
LOD也称为层次细节模型,是一种实时三维计算机图形技术,最先由Clark于1976年提出,其工作原理是:视点离物体近时,能观察到的模型细节丰富;视点远离模型时,观察到的细节逐渐模糊。系统绘图程序根据一定的判断条件,选择相应的细节进行显示,从而避免了因绘制那些意义相对不大的细节而造成的时间浪费,同时有效地协调了画面连续性与模型分辨率的关系。地形里面的LOD算法可以分为:非连续LOD模型、连续LOD模型以及节点LOD模型。非连续LOD模型:它实质上保存了原始模型的多个副本,每个副本对应某一特定的分辨率,所原创 2020-06-30 02:11:25 · 5290 阅读 · 0 评论