自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (19)
  • 收藏
  • 关注

原创 Vulkan_多线程渲染

用了这么长时间的vulkan渲染,我们本次主要来尝试使用vulkan相对于其他图形api的一个优势:多线程渲染。本次我们主要来实现:在多个线程中平分渲染1024个模型并且在cpu中根据模型位置实现一个简单的视锥体剔除。一、理论基础文章开始之前,我们先来介绍两个vulkan常用功能:Fence及副命令缓冲区。栅栏(fence):当主机需要等待设备完成某次提交中的大量工作时使用,通常需要操作系统的协助。是中等级量的同步语句。副命令缓冲区:是可以由主命令缓冲区调用的命令缓冲区,副命令缓冲区可以从主命令

2020-09-29 01:18:35 1966

原创 Vulkan_骨骼动画的实现

上一部分我们主要讲了骨骼动画的原理,现在我们来对其进行实现:一、实现原理首先从骨骼动画的机制推导出驱动骨骼动画需要的数据: 模型骨骼树的结构数据,描述模型都有哪些骨骼,以及骨骼之间的连接关系。 每个顶点需要这些额外数据: 该顶点依附于哪些骨骼(即被哪些骨骼影响),以及每根骨骼的影响权重。 骨骼动画的关键帧数据,每个关键帧数据会保存每个骨骼在这个关键帧时间节点时相对父骨骼节点的变换矩阵, 每个关键帧还会保存自己对应的时间点。 动画通用数据: 名称, 持续时间等。上述数据就足以驱动一个骨骼动

2020-09-24 00:23:02 1428

转载 骨骼动画原理

动画相关理论详解一 、骨架骨架由一系列具有层次关系的关节(骨骼)和关节链组成,是一种树结构,选择其中一个是根关节,其它关节是根关节的子孙,可以通过平移和旋转根关节移动并确定整个骨架在世界空间中的位置和方向。父关节运动能影响子关节运动,但子关节运动对父关节不产生影响,因此,平移或旋转父关节时,也会同时平移或旋转其所有子关节。二、骨骼的表示通常会将关节进行编号0∼N−1,编号也称关节索引,通过索引查找关节比关节名查找高效的多。通常一个关节包含以下信息关节名父关节索引(根关节的父关节索引为-1,为

2020-09-19 00:07:22 2014 5

原创 GPU架构与管线总结

核弹厂有一篇关于自家GPU架构和逻辑管线的非常好的文章,如果你想要对GPU的结构有一个比较完整系统的认识,请一定不要错过这篇Life of a Triangle,本文主要参考此处进行总结归并。管线结构总图 为什么这一切如此复杂?因为在图形阶段我们必须处理由于创建大量变量导致的数据扩充。每个drawcall可能会生产不同数量的三角形。而经过剪裁后的点的数量与我们最初生成的又不一样。经过背面剔除和深度剔除处理后,不是所有的三角形都需要在显示在屏幕上的。一个三角形在屏幕上的尺寸就意味着需要百万的像素来显示

2020-09-13 14:29:38 5657 1

原创 shader性能优化总结

总结一下最近看到的shader性能优化策略一、计算量与计算频率相关的问题通过之前文章的学习,我们应该已经了解到 GPU 是流式处理器,其中的顶点着色单元会每顶点执行一次,而片元着色单元会每片元执行一次。可以想象,每绘制一帧画面,顶点着色器与片元着色器的代码少则执行成百上千次,多则执行几万甚至几百万次。因此,如果能恰当地减少顶点着色器与片元着色器每次执行所做的工作量,性能将得到可观的改善。经常涉及的简单技巧主要包括着色计算的位置优化以及着色计算的代码优化两方面,具体内容如下:1.1 着色计算的位置优

2020-09-07 00:02:22 4866 4

原创 两种算法:判断一个点是否在一个复杂多边形的内部

一、PNPoly 算法在 GIS(地理信息管理系统)中,判断一个坐标是否在多边形内部是个经常要遇到的问题。乍听起来还挺复杂。根据 W. Randolph Franklin 提出的 PNPoly 算法,只需区区几行代码就解决了这个问题。假设多边形的坐标存放在一个数组里,首先我们需要取得该数组在横坐标和纵坐标的最大值和最小值,根据这四个点算出一个四边型,首先判断目标坐标点是否在这个四边型之内,如果在这个四边型之外,那可以跳过后面较为复杂的计算,直接返回false。比如:在多边形的顶点中分别找出 X 坐标和

2020-09-06 23:51:33 1638

原创 【光线追踪系列十】光追加速结构(BVH树)

本文主要参照 Ray Tracing: The Next Week,其中只是主要精炼光追相关理论,具体实现可参照原文。经过之前几部分的光追实现,我们大致可以实现了光追的效果,但其中有一个致命的bug就是:慢!!!本部分我们就来解决这个问题。首先我们分析下:射线和物体的相交检测,是光线追踪器的主要时间瓶颈,目前时间复杂度是线性的。有两种方法可以将时间复杂度降低到对数级别:一是空间划分,二是物体划分。本节将用BVH实现物体划分,对当前的项目进行加速。一、层次包围体 BVHBounding volume

2020-09-05 23:02:10 7696 2

原创 【光线追踪系列九】物体动态模糊

一、动态模糊如果要实动态模糊的效果,可以将原来的球体,改成球心在某条线段上的球体,例如代码中将sphere修改为moving_sphere,并将原来的center修改成center0, center1。每条射线都会有一个随机的系数t(范围0到1),使用t插值center0, center1,得到这条线段上的某个点作为moving_sphere的球心。不同的射线会有不同的t,不同的t插值出来的球心位置就会不同。对某个像素随机采样ns次之后,这个像素就会产生ns条t值随机的射线,这ns条射线对应位置不同的球

2020-09-05 14:24:54 635

原创 【光线追踪系列八】动态相机、散焦模糊及最终光追效果

本次光线追踪系列从基础重新开始,主要参照 Ray Tracing in One Weekend ,具体实现代码框架见 https://github.com/RayTracing/raytracing.github.io/。本文只是主要精炼光追相关理论,具体实现可参照原文。

2020-09-04 23:16:43 1200

原创 【光线追踪系列七】折射与电介质材质

本次光线追踪系列从基础重新开始,主要参照 Ray Tracing in One Weekend ,具体实现代码框架见 https://github.com/RayTracing/raytracing.github.io/。本文只是主要精炼光追相关理论,具体实现可参照原文。电介质是水,玻璃和钻石等透明材料。当光线射到它们上时,它分裂为反射射线和折射(透射)射线。我们将通过在反射或折射之间随机选择,并且每次交互仅生成一条散射射线来解决这一问题。本节将会实现折射向量和电介质材质的光线追踪,例如玻璃材质。一、

2020-09-02 21:36:29 818

原创 【光线追踪系列六】反射与金属类特性

本次光线追踪系列从基础重新开始,主要参照 Ray Tracing in One Weekend ,具体实现代码框架见 https://github.com/RayTracing/raytracing.github.io/。本文只是主要精炼光追相关理论,具体实现可参照原文。本部分主要来实现反射函数及金属特性;一、材质抽象类 material接下来我们会涉及到处理不同的材质,所以我们可以封装一个材质类material。其中的抽象函数叫scatter(),意思为散射,因为射线起点和方向的改变,不一定是反射

2020-09-01 22:23:51 1078 1

体积光照明算法 Physically-Based Volumetric Light Scattering

2016 NVIDIA :Fast, Flexible, Physically-Based Volumetric Light Scattering

2022-03-13

TemporalAA_small(时域抗锯齿技术TAA)

TemporalAA_small(时域抗锯齿技术TAA)

2022-01-08

VXGI外网相关学习资料

VXGI资料下载路径

2021-12-22

Real-Time GI Using OpenGL & VXGI.pdf

Real-Time Global Illumination Using OpenGL And Voxel Cone Tracing(VXGI)

2021-12-06

DDD 微服务落地实战视频教程

总共21小结,从理论到实践

2021-09-11

NURBS曲线与曲面C++源代码

计算几何07_NURBS曲线与曲面博客源代码_https://blog.csdn.net/qq_35312463/article/details/112954907#comments_17416518

2021-07-09

DirectX9龙书(中文、英文、源码).zip

上古DX9龙书(内含中文翻译版书、原版英文书、源码实现)

2021-04-30

三次样条插值函数求解过程

三次样条插值函数求解过程

2021-01-07

关键帧动画模型.rar

博客Vulkan_顶点着色器妙用5(关键帧动画)使用模型,三个老鹰obj模型,其中所有关键帧中顶点的数量一致,并能够形成一 一对应的关系。

2020-08-05

gltf2.0_models.rar

gltf2.0标准模型集合,学习vulkan物理渲染自用的一些模型,有需要的可以下载使用,内含50多种gltf文件

2020-05-24

SketchUp SDK-2017.zip

2017年的sketchup 开发包,包含头文件,lib和dll。非常有用,现在已经无法从官网下载了,需要申请。

2019-07-24

Meshsimplify_C#.rar

根据网上大神C++的塌边法改的C#版本,不依赖于Unity,只要自己的数据结构中有顶点与面信息,其中uv信息用户可自行选择处理不处理对减面算法不影响,改化成程序所需的数据结构即可。(MeshDecimator类下SimplifierMesh方法为转换数据入口);

2019-07-19

MeshSimplify.rar

代码为C++语言编写,原理是使用塌边法进行三角面片简化,使得复杂模型可以Mesh得到简化,亲测VS17运行成功

2019-06-28

CMake3.11.zip

CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性(适用Vulkan开发环境_配合VS15 x64使用)

2019-06-28

C#、VB、IL反编译工具_ILSpy_Master(最新).rar

ILSpy是.NET开发中必备的反编译工具,ILSpy的界面与Reflector相似,左边以树型控件显示程序集和它的类型,右边是对应的源代码。基础的反编译功能,与Reflector相比,丝毫不差,甚至有时候用Reflector无法反编译(因为加密)的程序集,用ILSpy可以反编译。

2019-06-12

NSIS 中系统特殊路径变量基础知识.pdf

NSIS 中系统特殊路径变量基础知识 列举了脚本中(32/64位)众多常用及非常用的命令变量,帮助你轻松了解NSIS中的变量

2019-06-12

RevitLookup-2019源码

For Revit2019_LookUp源码,添加19revit*.dll引用后可直接编译,使用其生成dll,也可跟踪其代码,查看lookup原理

2019-06-12

空空如也

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

TA关注的人

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