自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

微小的鱼的博客

会写代码的小哥哥

  • 博客(122)
  • 资源 (11)
  • 收藏
  • 关注

原创 Wasm的简介

由于公司项目的需求,现在主要是做脱Flash的工作(历史原因用AS3.0做的)!现在全部转为C++, 并且发布PC版与Web版。其中Web的版本就是使用的Wasm(WebAssembly技术)。 WASM ,全称:WebAssembly ,是一种可以使用非 Java 编程语言编写代码并且能在浏览器上运行的技术方案,也是自 Web 诞生以来首个 Java 原生替代方案( 程序本质上都是脚本程序,...

2019-01-31 23:59:42 62122 3

原创 动画原理:表面形变算法的思考与总结

之前我的文章有大致的讨论过形变算法,介绍的也比较粗略!现在主要是想在Triangulated Surface Mesh Deformation方向上更深入的讨论一下!结合今年我对这一块的学习谈谈我的理解~下面要介绍大致几种算法,不管是拉普拉斯形变算法或者它的形变还是ARAP的形变,本质上都是,通过在网格人为的定义一些控制点或控制边,然后根据控制点或控制边的移动来影响网格的形状。

2024-03-01 00:08:58 1642

原创 移动端或游戏布料的解算

主要介绍PBD算法,目标是移动端能实现布料的模拟与仿真,讲述布料模拟的基础理论原理,数学公式,PBD算法的详解;有Nvcloth、GPU等的实现方案。

2023-11-30 23:59:34 1249

原创 Z-Fighting问题解决(二) - Reverse-z

开头梳理cg的Z的基本知识,然后介绍由于深度精度分布不均导致Z-Fighting等问题及其使用Reversed-Z 的解决方案。

2023-10-16 20:09:40 285

原创 C++ 高级特性:右值与new

在现代的C++中,左值表示一个可修改并具有持久身份的对象,而右值表示一个临时对象,其值可以用作初始化其他对象左值:表示对象的内存位置,可以在赋值操作符的左边,例如变量名、数组元素或解引用指针。右值:表示一个临时的、短暂存在的值,例如字面量或结果为临时对象的表达式。它们通常不能在赋值操作符的左边。右值引用(通过&&符号表示)是 C++11 引入的一种新类型的引用,右值引用主要用于捕获临时对象(右值),这些对象通常在表达式求值后就被销毁。

2023-08-07 01:23:40 286

原创 传统图形学对nerf的对比与应用落地

传统图形学:显示表达几何表达方式:网格(Mesh)、点云(Point cloud)、体素(Voxel)、隐式函数(Implicit),渲染主要包括两种:1、渲染管线(主实时);2、光线追踪(主离线,现也出现PC的实时光追)nerf:nerf本质上提供了一种新的逆渲染方式,通过神经网络模拟连续的场+体渲染的方式。同时也是隐式可微渲染,创造性的引进神经网络达到惊艳的效果。

2023-06-01 00:01:04 1926

原创 Mesh形变算法

作者正好因为动画、模拟仿真等等的重大需求需要预先研发离散形的模型Mesh的形变算法,这里做一个总结与分享分享。这里主要是讲1、空间形变、2表面形变

2023-04-29 03:26:16 3033 2

原创 毛发渲染(一)--基于多pass透明混合

移动端毛发的渲染,主要是通过多pass实现。只能模拟短发,动物的毛发,无法模拟长发。

2022-12-30 20:17:59 1594

原创 移动端布料的模拟 -基于DynamicBone的实现

基于动态骨骼实现移动端的布料模拟摆动,穿模是不可避免的!

2022-10-31 23:59:34 2518 3

原创 粒子系统实现与原理

先简单讲述粒子的基本概念,包括分类等等,结合本人做过,在公司实现的粒子系统的思路、总结等等,包括未来也是比较新的粒子系统实现方式,根据需求制作一个粒子系统。

2022-09-30 23:59:32 3838

原创 PBR学习笔记

PBR更通俗一些的称呼是指基于物理的渲染(Physically Based Rendering),它指的是一些在不同程度上都基于与现实世界的物理原理更相符的基本理论所构成的渲染技术的集合。值得特别注意的是:需要FBO,立方体贴图,Gamma校正,HDR和法线贴图相关知识同时实时渲染PBR与BRDF 等等相关是 探讨的内容属于渲染的相当高端的领域;

2022-08-20 10:00:00 1149

原创 图形管线(一)后处理阶段 alpha测试 模版测试 深度测试 混合

在实时渲染中不管是TA、游戏特效等等,工作中或者面试经常用到或者问道,所以本人今天来梳理总结一番!光栅化一般分为 三大阶段,应用程序阶段->几何阶段->光栅化阶段,也可以四大阶段 应用程序阶段->几何阶段->光栅化阶段->后处理阶段.........

2022-07-19 02:54:53 1160

原创 离屏渲染 &FBO

介绍FBO,展开说明了相关进阶的RTT,与调试手段MRT等等相关的知识

2022-06-29 03:08:04 1131

原创 图形学的三种拾取实现与比较

计算机图形学的几种拾取原理、实现及其比较。

2022-04-26 23:06:10 2448

原创 gltf 格式二

gltf按照图形编程所需的格式来存储数据,借以二进制编码提高传输速度。**gltf不再使用面向对象的思维存储三维模型、贴图纹理,而是按显卡的思维存储,存的是顶点、法线、顶点颜色等最基础的信息,只不过组织结构上进行了精心的设计!它面向终点,就意味着可编辑性差,因为渲染性能的提高牺牲了可编辑性。**它不再像fbx、obj一样容易编辑和转换。glTF的核心优势就是对于Buffer的读取, Buffer中读取的数据可以直接用memcpy的方式作为BufferGeometry数据传到GPU中。gltf的形式:g

2022-03-19 20:04:57 1455

原创 精度丢失导致扭曲与抖动

数据的问题准确说是 精度问题导致的,最好用相对坐标系别用绝对的,相对相机或者项目初始配置一个左下角点,然后所有的顶点减去这个左下角点,最好是用相对相机的,这样不用管顶点多大,最后都是小坐标 (工程人员干图形都是糙快猛,啥都不懂 数据用double,不知道GPU是float 精度损失常事了)相机对数深度缓冲:(解决Z-fight)(首先猜测是否是Z-fight) 这个有点类式于这吧顶点位置的数值太大,gpu运算的精度不够,会导致顶点位置错乱 相机有个对数 就是根据相机的近截面显示的详细一些,远截.

2022-02-25 01:40:43 1537 3

原创 透明的渲染

透明分为两种:透明测试(Alpha Test),透明混合(Alpha blending),其中透明度测试只是根据Alpha通道 阈值把对应的像素discard丢弃,得到的并不是真正的透明!Alpha blending是得到真正的透明.

2022-01-27 18:36:10 5489

原创 曲面细分(subdivision)&曲面细分着色器&GPU的LOD

曲面细分是指将一个模型的面合理的分成更多小的面,从而提升模型精度,提高渲染效果 曲面简化是指将一个模型的面合理的合成更少的面,从而降低模型精度,为特定情形下提供使用(如LOD技术) 。这一过程是可以在CPU中完成的,但组织多个点的动态添加和删除,并且更新同步到着色器所需的vb中,这一过程比较消耗性能,并且实现起来也不能算是特别容易的事情。一个比较理想的做法应该是在GPU硬件中完成相关的操作(曲面细分做色器),并且给用户提供一些可编程的接口。曲面细分着色器(GPU):带着这一目的,DirectX 11引入

2021-12-07 00:15:09 3130

原创 合批/批量渲染 (Batch)、实例化Instancing

可以简单的理解为:批量渲染是通过减少CPU向GPU发送渲染命令(DrawCall)的次数,以及减少GPU切换渲染状态的次数,尽量让GPU一次多做一些事情,来提升逻辑线和渲染线的整体效率。但这是建立在GPU相对空闲,而CPU把更多的时间都耗费在渲染命令的提交上时,才有意义。合批最重要的前提:材质必须相同!!!合批是节省了CPU的相关准备工作的工作量。合批后,经过VS,PS,尝试测试,模板测试后,此时已没有了纹理,顶点,索引的概念,只剩下一个个孤立的像素,各像素间没有任何关系了。像素送到GPU后进行批

2021-11-15 19:32:27 7319

原创 纹理优化三-KTX纹理压缩

KTX (Khronos Texture) 是一种纹理存储格式,大部分移动设备的 GPU 均支持这种格式。可以有效降低设备的显存占用,提高运行效率和稳定性。ktx是容器,astc是算法。ktx存的图像可以是BCn,astc,etc,astc存储的结果也可以放在ktx或者dds,或者自己随便弄个raw buffer存。 如果网络流式传输完全不需要这些gpu用的压缩啊(只需要体积减少)有压缩比更高还无损的比如zip(纹理压缩体积会变大,这个是给你GPU读取更快的算法) 这个是给你GPU读取更快的算法.纹.

2021-11-10 23:40:22 6016

原创 空间数据结构

前言:空间分割、引擎场景图、场景管理,CSG、光追加速等等都需要用到空间数据结构,它是一些通用的算法抽象,主要用于空间2D 、3D等等所以才称为空间数据结构,我这次是做了PPT、研究讨论最后演讲也分享部分出来~

2021-10-25 14:47:36 3079

原创 Web图形从flash到webgl次世代Webgpu

我刚刚大学毕业的时候第一份工作就是要脱flash,搞成webgl+wasm+C+++自研引擎,也算有缘分最后能碰到了第一代flash,然后是现在webgl1.0 ,下一代的也出来了兴奋,耳闻webgpu是移动端web的救星!!!WebGPU 是用于加速图形和计算的未来 Web 标准和 JavaScript API 的工作名称,旨在提供“现代 3D 图形和计算能力”。 它由 W3C GPU 为 Web 社区组开发,工程师来自 Apple、Mozilla、Microsoft、Google 等。与 WebGL

2021-10-01 16:30:50 1564

原创 HLSL & CG 与glsl着色器编译及其原理

Shader简介:Shader Language的发展方向是设计出在便携性方面可以和C++、Java等相比的高级语言,“赋予程序员灵活而方便的编程方式”,并“尽可能的控制渲染过程”同时“利用图形硬件的并行性,提高算法效率”。Shader Language目前主要有3种语言:基于 OpenGL 的 OpenGL Shading Language,简称 GLSL;基于 DirectX 的 High Level Shading Language, 简称 HLSL;还有 NVIDIA 公司的 CG

2021-09-09 23:44:18 3626

原创 GPU的架构(一)

gpu的驱动框架:1、窗口标准的实现是与操作系统强相关的,它为图形渲染提供目标内存。一般来说,只要支持的标准不变,操作系统更换/升级,对驱动的代码影响就只限在窗口这一块。2、编译器用于编译shader或kernel,编译kernel需要用llvm预编译,编译器会大一些。低端GPU的编译器特别容易出现各种语法不支持,让写shader的人痛苦万分。3、通用计算的实现就是把kernel编译后转成任务扔给内核去跑,相对简单。4、图形渲染的实现则需要考虑到一帧中可能有重复渲染/过度绘制的情况,为了这方面做优

2021-09-05 06:13:54 11661

原创 渲染性能优化之Culling 剔除

几种剔除:背面裁剪(Backface Culling)视锥裁剪(View Frustum Culling)遮挡剔除(Occlusion Culling)层次视锥裁剪(Hierarchical View Frustum Culling)入口裁剪(Portal Culling)细节裁剪(Detail Culling)像素剔除(Pixel Culling)在计算机图形学中,相对应的就是裁剪技术(Culling Techniques)所要做的工作——“从大量游戏事物中进行删除”。所谓的“大量事物”就

2021-06-18 20:04:29 2402

原创 渲染性能优化之几种LOD层次细节总结

LOD细节层次(Level of Detail,LOD)的基本思想是当物体对渲染出图像贡献越少,使用越简单的形式来表达该物体。这是一个已经在各种游戏中广泛使用的基本优化技术。一般情况下,完整的LOD算法包含3个主要部分:生成Generation(手动生成可以也可以减面生成)选择Selection切换Switching(切换不同精度的模型)从一个细节层次转换到另一个细节层次,而这个过程便称为LOD切换。LOD的切换 | LODSwitching当从一个LOD切换到另一个LOD的时

2021-06-02 01:08:57 8825

原创 移动端GPGPU 架构

最近在面试的时候发现移动端现在是越来越热,然后就有被问到GPU的框架什么的PC端的这个可以参考这个:GPU硬件架构及其运行机制移动端的与PC端有很大的区别!比如移动端可以说没有独立的显存只有些寄存器cache 和on-chip memory!立即渲染模式IMR :IMR(Immediate Mode Rendering)就如字面意思一样——提交的每个渲染要求都会立即开始,这是一种简单而又粗暴的思路,优点缺点都非常明显,如果不用为性能担忧,这种方式会很省事,但是IMR的渲染实行的是无差别对待,那些遮蔽处

2021-05-10 10:34:04 759 2

原创 RenderDoc 调试web

由于学习闫老师的GAMES202 用到了webgl所以需要webgl抓帧调试一下~配置:会弹出小窗口,记住PID:然后files->inject into process 输进去刚刚小窗口弹出来的点击注入当然弹出的小窗口点击确定就可以了;当然有的可能会出现配置不成功就需要方式二:需要写个DEBUG_CHROME.bat脚本:set RENDERDOC_HOOK_EGL=0"C:\Program Files (x86)\Google\Chrome\Application\chrom

2021-04-02 15:59:45 4333 12

原创 BRDF(一)

辐射度量学:辐射通量(Radiant Flux,又译作光通量,辐射功率)描述的是在单位时间穿过截面的光能,或每单位时间的辐射能量,通常用Φ来表示,单位是W,瓦特。其中的Q表示辐射能(Radiant energy),单位是J,焦耳。对一个点(比如说点光源)来说,辐射强度表示每单位立体角的辐射通量,用符号I表示,单位 :概括一下:辐射强度(Radiant intensity,又译作发光强度),表示每单位立体角的辐射通量,通常用符号I表示,单位 ,瓦特每球面度。辐射率(Radiance,又译作光亮

2021-03-26 15:30:09 1679

原创 Z-Fighting问题解决方案实例(一)

三角形mesh出错边拓扑结构乱掉导致的,这里大量的建筑模型都出现问题),再重面触发被动fitting! 既然由重面引发的,解决重面就可以Z-Fighting啦。Z-Buffer使用深度缓冲(Z-Buffer),Z-Buffer又名 Depth buffer来完成场景可见性计算,即确定场景哪部分可见,哪部分不可见。深度缓冲(Z-Buffer)是一个二维数组,其中的每一个元素对应屏幕上的一个像素,如果场景中的两个模型在同一个像素生成渲染结果,那么图形处理卡就会比较二者的深度,并且保留距离观察者较近的物体.

2021-02-02 11:06:13 6247 7

原创 Mesh平滑处理的几种算法比较

平滑(smooth)3D平滑处理是一种减少锯齿(阶梯状线条)的技术。 平滑处理可设置为有利于提高系统性能或改进图象质量。(功能可以查看3Dmaxblender等等)网格平滑属于数字几何处理领域的问题,计算机图形学和计算机辅助设计中,用多边形网格可以表示复杂的三维实体。随着三维扫描和曲面重建技术的发展,得到这些实体表面的多边形网格表示已经不是难事,但所得到的表面往往包含含噪声。在形状设计领域,在散乱点拟合和光滑形伏、纹理映射等应用领域,都有对平滑曲面的极大需求。故产生了网格平滑这一个研究点。如下图

2021-01-05 00:06:49 14557 2

转载 纹理优化二-模型贴图优化

在大型的场景下,不然城市模型或者建筑等等顶点face居多单单做减面还是远远不够的,但是单单这里还远远不够,比如给的模型一个房子就非常多的纹理然而很多时候贴图文件往往大于模型。此时则需要将模型和贴图分开进行处理(建模时分开输出一个打好 UVtag 纹理坐标的“白模”和需要用到的纹理贴图)。下面介绍如何优化用于应用程序渲染的贴图文件。

2020-12-14 11:39:42 2313

原创 gltf格式一、简介

GLTF介绍:glTF 称为“ 3D 界的 JPEG”,使用了更优的数据结构,为应用程序实时渲染而生。glTF 有以下几大特点:由现有 OpenGL 的维护组织 Khronos 推出,目的就是为了统一用于应用程序渲染的 3D 格式,更适用于基于 OpenGL 的引擎;减少了 3D 格式中除了与渲染无关的冗余信息,最小化 3D 文件资源;优化了应用程序读取效率和和减少渲染模型的运行时间;支持 3D 模型几何体、材质、动画及场景、摄影机等信息(因为gltf已经把整个场景都放到里面去了所以当然支持动画

2020-12-10 11:24:44 15878

原创 纹理优化一、纹理压缩

通常无人机拍摄生成的地形模型文件较大(倾斜摄影),要将三维模型显示到网页上,先要压缩模型(可以减面删除重复点、重复的面),前面这些已经实现了再来就是进行的纹理压缩!像我们做CIM,智慧城市场景主要是室外当然也有部分室内的功能与展示那一部分是BIM只有在高精度模型才能使用 BIM 的功能,平时比如漫游或者在城市模型比如广州这种特大城市场景里面非常多的模型建筑数据消耗内存还有卡顿问题资源的管理与优化是非常重要的以及使用LOD,来回切换高精度与低精度的模型,但是单单这里还远远不够比如给的模型一个房子就非常多的纹理

2020-12-07 19:13:19 3034 2

原创 三角网格(Triangle Mesh)与四角mesh网格理解总结

由于公司项目要求用opengl实现减面与曲面细分,所以整理总结了一下三角网与四角网的一般特性与特点优缺点等等~

2020-11-09 22:59:18 20962 2

原创 网格简化 二 、QEM算法

简化算法的误差测度(度量质量和误差)误差测度用于度量模型简化的质量和误差,因此它对模型的简化过程和最后的简化结果都具有重要的影响。大多数简化算法采用对象空间(Object-space)的一种或综合几种形式的几何误差(Geometric errors)作为误差测度,一些视点相关算法通常将对象空间的误差转换为屏幕空间(Screen-space)的误差值为误差测度,有些算法也考虑模型的颜色、法向量和纹理坐标等属性误差(Attribute errors)。几何误差几何误差测度一般采用欧式空间距离表示。通常有顶点

2020-10-16 01:52:46 10272

原创 网格简化 一、 常见减面算法简介

公司项目需求所以最近来研究减面,这里主要是大概简单的简述减面的思维等等还有几种常见的算法!

2020-10-16 00:30:17 5809

原创 古老的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 1197

原创 osg osgb osgt格式

主要是通过介绍osg格式举一反三理解osgb与osgt格式。

2020-09-09 22:24:25 5291

原创 directX 简介

DirectXDirectX(Direct eXtension,简称DX)是由微软公司创建的多媒体编程接口,是一种应用程序接口(API)。DirectX可以让以windows为平台的游戏或多媒体程序获得更高的执行效率,加强3D图形和声音效果,并提供设计人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件来写不同的驱动程序,也降低用户安装及设置硬件的复杂度。Microsoft DirectX 是这样一组技术:它们旨在使基于Windows 的计算机成为运行和显示具有丰富多媒体元素(例如全色图形、视频、

2020-09-03 19:14:40 3879

逆3Dtiles为gltf.rar

这是一个小工具当然也用了部分开源的,为了方便调试组织3Dtiles格式专门做了格式文件逆向方便逆向回gltf格式;

2021-03-29

glb&gltf2.0.rar

3D模型 也包括动画 相机等等特性

2021-03-29

斯坦福龙、斯坦福兔子 、弥勒佛 、犹他茶壶等等经典图形学3D模型Obj格式

这些是计算机图形学经典图形学3D模型,使用的是obj的格式 斯坦福龙、斯坦福兔子 、弥勒佛 、犹他茶壶等等

2020-10-12

depends22_x64.rar

这是一个dll的接口查看器能查看dll中会依赖哪一些库,以及dll的对外接口等等 ,这里包含了x86与x64两个版本。

2020-06-23

GDAL.rar的库

主要是对gdal,已经编译好了直接可以引用,主要用于图形等等的比较多~~~~~~~其他就没什么了不然还要下载编译;

2020-06-23

osg3.4版本编译好的库

sg3.4颁布编译好的库解压就可以直接使用了非常方便之前自己编译了好久用了4个多小时很耗费时间,希望能帮助到大家~

2020-06-23

jsoncpp.rar

我下载好了C++的第三方库jsoncpp方便用于各种json的操作等等,希望能帮到大家哈哈哈

2020-06-23

安全工具 -Havij

havij 5个版本 哈哈 我好不容易收集到的 资源分可能有一点小贵

2017-11-20

Pangolin V 3.2.3 Pro Edition

我好不容易收集到的安全小工具 很久前的工具了 啊啊啊啊啊

2017-11-20

安全小工具Nmap

这是我好不容易收集到的 啊啊啊啊啊啊

2017-11-20

TCP端口扫描工具

python的TCP端口扫描,还给了大家一点福利哈哈哈

2017-11-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除