抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

Unity URP卡通渲染包 最近工作之余抄了一个卡渲,结果越做感觉越没意思,主要是缺少一些美术资源,于是先pending,在此先记录一下 当前进度 代码已开源,仓库地址 设计理念 高复用,易拓展,低侵入 我遇到了什么问题 每次我要写Unity shader时,我都要不厌其烦地写 Shader GUI、Properties 定义贴图和采样器,定义全局变量 维护CBuffer,尤其是S...

Marching Cubes Marching可以理解为一种循环 步进正方形(Marching Cubes)是一种非常常用的构建三角形网格的算法,在三维空间中均匀摆放正方形,循环遍历这些正方形,插值出三角形表面 Marching Cubes每个顶点有两个参数,顶点位置和权重(SDF) Unity显示三角形网格 注意!Unity拼装Mesh时,要先设置vertices,再设置tria...

三维模型的表示方法 常见的模型表示法有:多边形网格、点云、体素、参数模型、隐式表面 Polygon mesh 一般特指三角形网格 三角形网格由两部分组成: 一个个离散的顶点 顶点间的拓扑关系 图形渲染中最常见的方法是光栅化和光追,都适用于三角形 方便进行深度测试、UV映射 方便进行模型细分和简化、布尔建模 美术行业长期使用该格式,存在很强的惯性 Voxel 与2D的像素类似,我们使用...

贴图UV 一个多边形Mesh中有Index Buffer和Vertex Buffer,其中Vertex Buffer上存储着顶点信息,包括顶点坐标、UV、法线、切线 最开始,我们只有顶点坐标,三角形的边向量叉积可以得到面法线,将面法线求和可以得到顶点法线,切线和次切线的方向就是沿着UV方向,那么问题来了,UV是怎么生成的? UV的用用途 UV是贴图的颜色的索引,可以用来采样贴图,是一种高效的...

HLSL 转 Metal 为了方便游戏移植到iOS和Mac,苹果近年推出了一个Metal shader converter工具,这个工具可以搭配微软的DXC工具,实现HLSL转化为Metal 编写HLSL DXC将.hlsl转化为.dxil MSC将.dxil转化为.metallib 原生Metal 在了解HLSL转Metal之前,我们需要先知道原生Metal长什么样,我感觉和HLSL还...

Jolt Physics 最近给小引擎接入了刚体物理系统,发现这个东西真的很简单,在此记录一下 关于物理系统 主流的物理系统接口都很相似,而且制作的非常完善,像刚体物理这种比较基础的模块,接起来十分简单 目前大多数物理引擎,还是在CPU多线程模拟,英伟达有一套基于GPU的,但没有开源 我接入的是Jolt Physics,是一个非常轻量级的物理系统 cmake 代码拉取 https://git...

头发渲染学习 最近因为不了解头发渲染的流程,整了乌龙,把正确的结果当成错误了。于是打算学习一下头发渲染的流程 面片发是由大量非平面面片制作,他们的切线沿着头发丝的方向,渲染时开启双面绘制 渲染方程 传入切线 UE5在绘制头发时,向GBuffer的法线位写入的是Tangent WriteGBuffer( Samples_Tangent, // 写入切线而非法线 Samples_Sp...

Vulkan学习笔记 在过去,我以为Vulkan只有高端安卓才会用,相当复杂,没有下定决心去学。后来发现很多桌面和主机游戏也在用Vulkan,Vulkan真的很出色很重要,于是这几天开始看英伟达nvpro和Vulkan官方教程,打算自己敲一个小demo 我的Vulkan项目 最近搓了一个Vulkan项目,记录一下学习过程 Vulkan API Queue 参考 what-is-act...

BCN编码 之前在知乎看到有美术在吵PNG和TGA哪一个更好用,但实际上引擎里使用的贴图是需要经过编码处理为GPU友好的资源格式,比如Windows上常用BCN编码,iOS常用ASTC编码 BCN原理 By storing some colors in their original size, and other colors using an encoding scheme, you...

软光栅化遮挡剔除 DrawCall和着色十分昂贵,于是我们希望可以剔除掉那些看不见的物体,以提高性能。而简单的视锥剔除并不能剃干净场景的物体,于是需要遮挡剔除。 这篇文章是一个CPU端的遮挡剔除,需要离线制作Occlusion Mesh,但不依赖各种GPU Driven的技术 Intel认为,CPU端使用GPU生成的Depth buffer做剔除,如果你不提前开一个Depth Only Pa...