![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图形
文章平均质量分 88
七Du°C糊涂
这个作者很懒,什么都没留下…
展开
-
曲线曲面基础
曲线曲面基础原创 2023-03-13 16:46:28 · 1162 阅读 · 1 评论 -
闭关之 Vulkan 应用开发指南笔记(四):绘制、几何体&片段处理、同步和回读数据
《Vulkan应用开发指南》笔记原创 2022-11-06 14:09:03 · 948 阅读 · 0 评论 -
闭关之 Vulkan 应用开发指南笔记(三): 着色器和管线、图形管线
《Vulkan应用开发指南》笔记原创 2022-11-05 14:27:01 · 1069 阅读 · 0 评论 -
闭关之 Vulkan 应用开发指南笔记(二):队列、命令、移动数据和展示
《Vulkan应用开发指南》笔记原创 2022-11-04 15:07:50 · 777 阅读 · 0 评论 -
闭关之 Vulkan 应用开发指南笔记(一):概述、内存和资源
《Vulkan应用开发指南》笔记原创 2022-11-03 17:46:36 · 1269 阅读 · 0 评论 -
Vulkan规范笔记(一) 第一章至第六章
略原创 2022-06-06 08:14:54 · 1250 阅读 · 0 评论 -
Unity游戏优化(第二版)阅读笔记
目录前言笔记总结前言 最近突然想了解一下游戏引擎中渲染部分是怎么优化的,所以在某平台上买了这本电子书,当初只是想了解行业技术,觉得翻译太浪费时间,所以买了这边。现在觉得这种选择是正确的,一本数看完,笔记还不到100条!这本书应该比较适合学习一段时间Unity后,作为进阶的入门材料。而如果想学一些渲染相关的优化,还是不推荐这本书的。笔记使用map时最好使用整型或enum做为 key,而不使用字符串指针跳跃会浪费时间、因此删除或禁用空函数经常使用的变量应该池化或使用引用、避免复制IO相关数原创 2022-04-12 08:24:08 · 2907 阅读 · 0 评论 -
Google Filament 源码学习(二):Material System (一)
目录前言Material SystemIntroductionStandard Model (标准材质)Standard ModelStandard Model SummaryImproving the BRDFsParameterizationRemappingBlending and layeringCrafting physically based materialsClear Coat modelclear coat specular DRBFIntegration In The Surface原创 2022-02-07 12:57:56 · 2092 阅读 · 0 评论 -
WebGL试玩(一)-- 环境搭建
目录IntroductionWebGL--Window下环境配置Homework0index.htmlengine.jsloadOBJ.jsMesh.jsTexture.jsMaterial.jsShader.jsMeshRender.jsWebGLRenderer.jsInternalShader.jslightShaderphongShader小结Introduction 实时渲染中的大部分基础内容已经复习差不多了。应该说,现在已经对实时渲染的一整套体系都有所了解了。开源引擎也仔细研读了几种。应原创 2021-12-21 08:51:52 · 1406 阅读 · 0 评论 -
渲染算法学习(七)-- Real-Time Ray Tracing
目录Real-Time Ray Tracing(RTRT)Implementation of FilteringBilateral FilteringJoint Bilateral FilteringImplementing Large FiltersOutlier RemovalSpatiotemporal Variance-Guided Filtering (SVGF)RAE — Architecture小结Real-Time Ray Tracing(RTRT)RTRT实现的效果Shadows原创 2021-12-14 08:57:17 · 584 阅读 · 0 评论 -
渲染算法学习(六)-- Real-Time Physically-Based Materials
目录PBR and PBR MaterialsPhysically-Based Rendering (PBR)PBR materials in RTRPBR materialsMicrofacet BRDFNormal Distribution Function (NDF)Shadowing-Masking Term(Term G)Linearly Transformed CosinesDisney’s Principled BRDFNon-Photorealistic Rendering (NPR) --原创 2021-12-03 08:55:08 · 512 阅读 · 0 评论 -
渲染算法学习(五)-- Real-Time Global Illumination
目录Global Illumination (GI)小结Global Illumination (GI)全局光照 = 直接光照 + 间接光照直接光照用上几节使用的方法即可得到间接光照,使用次级光源求解实时渲染中的GI问题,实际上是解决一次bounce的间接光照要求简单快速实时渲染中间接光照IBL不考虑visibility项,因此其求解的渲染方程如下:Lo(p,ω0)=∫Ω+Li(p,ωi)fr(p,ωi,ωo)cosθidωi(1)\tag{1}L_o(p原创 2021-11-19 09:01:07 · 466 阅读 · 0 评论 -
渲染算法学习(四)-- Environment Lighting
目录MaterialsDiffuse / Lambertian Material (漫反射BRDF)Ideal Reflective / Refractive Material (反射/折射BSDF)Fresnel Reflection / Term (菲涅耳项)Microfacet Material各项同性法线分布函数各项同性法线分布函数小结Materials 由于工作就是做这一块的. 因此, 只对一些基础理论做一下归纳, 依旧使用Games的课程为基础,结合《Real-Time Renderin原创 2021-11-08 08:24:47 · 355 阅读 · 0 评论 -
渲染算法学习(三)-- Materials
略原创 2021-10-15 08:51:34 · 597 阅读 · 2 评论 -
渲染算法学习(二)-- 渲染方程复习
目录Shadow Mapping2-Pass Algorithm Shadow MappingApproximation In Shadow MappingPercentage Closer Soft Shadows (PCF)PCF 的理论Variance Soft Shadow MappingDistance Field Soft Shadows小结Shadow Mapping 阴影算是我的入行第一课,虽然阴影算法实现不难,但是向一个陌生架构的引擎里塞新功能还是有挑战的!复习的阴影算法: Ga原创 2021-09-15 08:32:41 · 642 阅读 · 0 评论 -
渲染算法学习(一)-- Shadow Mapping
目录IntroductionShadow Mappingpreparerendershader小结Introduction Vulkan 的学习算告一段落了。下一个阶段是图形基础的复习与学习。这里以Games的课程入手,通过Games课程的学习, 再使用Vulkan实现经典的图形算法, 这样一举两得!使用课程的地址:http://games-cn.org/ 首先从Games 渲染课程开始。老本行,容易上手,毕竟需要自己搭建学习使用的Vulkan框架。需要时间做调整。渲染课程结束后再学习其他课原创 2021-08-23 09:08:35 · 1641 阅读 · 0 评论 -
Vulkan Samples 阅读 -- Debug Markers
目录Conditional Renderingpreparerendershader小结Debug MarkersNegative Viewport Heightpreparerendershader小结Variable Rate Shadingpreparerendershader小结Conditional RenderingprepareloadAssets:加载模型(有很多部件组成)\prepareConditionalRendering: 条件渲染重点设置vkCmdBeginCondi原创 2021-07-30 08:51:02 · 441 阅读 · 0 评论 -
Vulkan Samples 阅读 -- Extensions(二)
目录Conditional Renderingpreparerendershader小结Debug MarkersNegative Viewport Heightpreparerendershader小结Variable Rate Shadingpreparerendershader小结Conditional RenderingprepareloadAssets:加载模型(有很多部件组成)\prepareConditionalRendering: 条件渲染重点设置vkCmdBeginCondi原创 2021-07-29 09:03:51 · 391 阅读 · 0 评论 -
Vulkan Samples 阅读 -- Extensions(一)
目录Text Renderingpreparerendershader小结Text RenderingprepareloadAssets: 加载立方体prepareUniformBufferscreateBufferupdateUniformBufferssetupDescriptorSetLayoutdescriptorSetLayoutBindingvkCreateDescriptorSetLayoutvkCreatePipelineLayoutpreparePipe原创 2021-07-28 09:07:27 · 432 阅读 · 0 评论 -
Vulkan Samples 阅读 -- Effects
目录Fullscreen Radial Blurpreparerendershader小结BloomParallax mappingSpherical Environment Mapping总结Fullscreen Radial BlurprepareloadAssets: 加载模型和贴图prepareOffscreen创建渲染模糊场景帧缓冲Color attachmentvkCreateImagevkGetImageMemoryRequirementsvkAllocateMemor原创 2021-07-27 08:44:53 · 152 阅读 · 0 评论 -
Vulkan Samples 阅读 -- User Interface(一) Text Rendering & Distance Field Fonts & ImGui Overlay
目录Text Renderingpreparerendershader小结Text RenderingprepareloadAssets: 加载立方体prepareUniformBufferscreateBufferupdateUniformBufferssetupDescriptorSetLayoutdescriptorSetLayoutBindingvkCreateDescriptorSetLayoutvkCreatePipelineLayoutpreparePipe原创 2021-07-27 08:06:54 · 252 阅读 · 0 评论 -
Vulkan Samples 阅读 -- Hardware Accelerated Ray Tracing(二)Reflections & Callable & Query
目录Ray Traced Reflectionspreparerendershader小结Ray Traced ReflectionspreparecreateBottomLevelAccelerationStructure: 在本地创建模型底层加速结构信息loadFromFile:加载模型创建两个VkDeviceOrHostAddressConstKHR,分别存放vbo和ibo的指针(deviceAddress)vertexBufferDeviceAddress : getBufferD原创 2021-07-24 08:46:30 · 526 阅读 · 0 评论 -
Vulkan Samples 阅读 -- Hardware Accelerated Ray Tracing(一) Basic Ray Tracing &Ray Traced Shadows
目录Basic Ray Tracingpreparerendershader小结Basic Ray TracingprepareVkPhysicalDeviceRayTracingPipelinePropertiesKHR获取光追管线属性VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHRVkPhysicalDeviceProperties2vkGetPhysicalDeviceProperties原创 2021-07-23 08:18:17 · 557 阅读 · 0 评论 -
Vulkan Samples 阅读 -- Tessellation Shader(一) Displacement Mapping & Dynamic Terrain Tessellation
目录Displacement Mapping & Model Tessellationpreparerendershader小结Dynamic Terrain Tessellationpreparerendershader小结Displacement Mapping & Model TessellationprepareloadAssets加载天空盒加载地形数据加载高度贴图vkCreateSampler地形贴图vkCreateSamplergene原创 2021-07-21 07:56:37 · 214 阅读 · 0 评论 -
Vulkan Samples 阅读 -- Geometry Shader(一) Normal Debugging & Viewport Arrays
目录Cloth Simulationpreparerendershader小结Cloth SimulationpreparequeueFamilyIndices.graphics != queueFamilyIndices.compute区分图形管线与计算管线loadAssets:加球模型与布料纹理prepareStorageBuffersstd::vector: 布料分为两类. 一类覆盖在球上, 一类为下垂的布料createBuffer: stagingBuffercreate原创 2021-07-20 08:08:43 · 238 阅读 · 0 评论 -
Vulkan Samples 阅读 -- Compute Shader(三)Cloth Simulation & Cull And LOD
目录Cloth Simulationpreparerendershader小结Cloth SimulationpreparequeueFamilyIndices.graphics != queueFamilyIndices.compute区分图形管线与计算管线loadAssets:加球模型与布料纹理prepareStorageBuffersstd::vector: 布料分为两类. 一类覆盖在球上, 一类为下垂的布料createBuffer: stagingBuffercreate原创 2021-07-19 08:44:50 · 243 阅读 · 0 评论 -
Vulkan Samples 阅读 -- Compute Shader(二)N-body Simulation & Ray tracing
目录N-body Simulationpreparerendershader小结N-body Simulationpreparegraphics.queueFamilyIndexcompute.queueFamilyIndex前两个的参数设置为了区别计算队列与图形队列loadAssets:加载粒子使用的贴图setupDescriptorPool这里多设置了一个池: VK_DESCRIPTOR_TYPE_STORAGE_BUFFERvkCreateDescriptorPool原创 2021-07-16 08:27:44 · 418 阅读 · 0 评论 -
Vulkan Samples 阅读 -- Compute Shader(一): Image Processing & GPU Particle system
目录Image Processingpreparerendershader小结Image ProcessingprepareloadAssets:加载贴图generateQuad: 生成一个带UV的画板模型setupVertexDescriptions: 绑定画板模型资源prepareUniformBufferscreateBufferupdateUniformBuffersprepareTextureTarget: 为 compute shader 计算结果准备一个贴图作为容器原创 2021-07-15 07:57:41 · 942 阅读 · 0 评论 -
Vulkan Samples 阅读 -- Deferred(二): Deferred Shadow Mapping & SSAO
目录Deferred Shadow Mappingpreparerendershader小结Deferred Shadow MappingprepareloadAssets:加载场景资源(与MSAA教程一样)deferredSetupnew vks::Framebuffer(vulkanDevice)addAttachment:ColoraddAttachment:NormalsaddAttachment:AlbedoaddAttachment:DepthcreateSample原创 2021-07-13 08:05:46 · 292 阅读 · 0 评论 -
Vulkan Samples 阅读 -- Deferred(一): Deferred Shading Basics & Deferred Multi Sampling
目录Deferred Shading Basicspreparerendershader小结Deferred Shading BasicsprepareloadAssets: 加载地板和模型, 及其材质贴图prepareOffscreenFramebuffer: 准备GbuffercreateAttachment: poscreateAttachment: normalcreateAttachment: colorcreateAttachment: depthvkCreateRende原创 2021-07-12 08:09:16 · 231 阅读 · 0 评论 -
Vulkan Samples 阅读 -- PBR(一): PBR Basics & PBR IBL & Textured PBR with IBL
目录PBR Basicspreparerendershader小结PBR IBLpreparerendershader小结PBR BasicsprepareloadAssets: 加载模型prepareUniformBufferscreateBuffer: 包括模型和PBR使用的参数updateUniformBuffersupdateLightssetupDescriptorSetLayoutVkPushConstantRange: 常量里面设置了材质信息preparePi原创 2021-07-10 08:28:15 · 225 阅读 · 0 评论 -
Vulkan Samples 阅读 -- Performance(二): Occlusion Queries & Pipeline Statistics
目录Occlusion Queriespreparerendershader小结Occlusion QueriesprepareloadAssets: 加载模型(茶壶, 遮挡平面, 球)setupQueryPoolvkCreateQueryPool: 创建一个查询池prepareUniformBufferscreateBuffer: Vertex shader, Teapot, SphereupdateUniformBuffersuboVS.visible = (passedS原创 2021-07-09 08:28:21 · 314 阅读 · 0 评论 -
Vulkan Samples 阅读 -- Performance(一): Multi Threaded & Instancing & Indirect Drawing
目录Multi Threadedpreparerendershader小结Instancingpreparerendershader小结Multi ThreadedpreparevkCreateFence: Create a fence for synchronizationloadAssets: 加载模型和星空纹理setupPipelineLayout: 这里用常量赋值矩阵vkCreatePipelineLayoutpreparePipelines:vkCreateGraphic原创 2021-07-08 08:05:00 · 307 阅读 · 0 评论 -
Vulkan Samples 阅读 -- Advanced(二):Mip-map Generation & Capturing Screenshots & OIT
目录Mip-map Generationpreparerendershader小结Capturing Screenshotspreparerendershader小结Order Independent Transparencypreparerendershader析构小结Mip-map GenerationprepareloadAssets: 加载模型和纹理loadTexture: mip map设置level: texture.mipLevels = floor(log2(std::max原创 2021-07-06 08:59:09 · 195 阅读 · 0 评论 -
Vulkan Samples 阅读 -- Advanced(一): Multi Sampling & High Dynamic Range & Shadow Mapping
目录Multi Samplingpreparerendershader小结Multi SamplingpreparegetMaxUsableSampleCount:获取当前使用显卡支持最大的多重采样个数setupRenderPass:重写父类方法,设置多重采样 attachmentstd::array<VkAttachmentDescription, 3>attachments[0]: Multisampled attachmentattachments[1]:从Multis原创 2021-07-05 08:55:40 · 182 阅读 · 0 评论 -
Vulkan Samples 阅读 -- Basics(七): glTF Loading & glTF Skinning & glTF Scene Rendering
目录glTF Loadingpreparerendershader小结glTF Skinningpreparerendershader小结glTF Scene Renderingpreparerendershader小结glTF LoadingprepareloadAssets:loadglTFFile: 加载模型, 材质信息, 纹理, 并使用stagebuffer写入管线loadImagesloadMaterialsloadTexturescreateBuffer: vertex原创 2021-07-02 08:35:37 · 282 阅读 · 0 评论 -
Vulkan Samples 阅读 -- Basics(六): CPU Particle System & Stencil Buffer
CPU Particle SystemsprepareloadAssets:加载烟雾资源加载火焰资源加载地板color和法线build sampler: vkCreateSamplerprepareParticles: 准备粒子系统资源 struct Particle { glm::vec4 pos; glm::vec4 color; float alpha; float size; float rotation; uint32_t type; // Attributes原创 2021-07-01 08:53:31 · 172 阅读 · 0 评论 -
Vulkan Samples 阅读 -- Basics(五): Input Attachments & Sub Passes & Offscreen Renderings
目录Input Attachmentspreparerender小结Sub Passespreparerender小结Input AttachmentsprepareloadAssets: 加载模型prepareUniformBuffersupdateUniformBufferssetupRenderPass: 重写了父类的方法, 创建 Attachment创建的数量是: swapChain.imageCount每个 Attachment 都需要创建 color 和 dept原创 2021-07-01 08:04:41 · 417 阅读 · 0 评论 -
Vulkan Samples 阅读 -- Basics(四): Texture Arrays & Cube Map Textures & 3D Textures
目录Push Constantspreparerender小结Push ConstantsprepareloadAssets: 加载模型等资源setupSpheres: 为球模型设置随机颜色prepareUniformBuffersupdateUniformBufferssetupDescriptorSetLayout:正常操作,常量在此处进行设置 // Define the push constant range used by the pipeline layout原创 2021-06-29 08:58:14 · 2737 阅读 · 0 评论 -
Vulkan Samples 阅读 -- Basics(三): Push Constants & Specialization Constants & Texture Mapping
目录Push Constantspreparerender小结Specialization Constantspreparerender小结Push ConstantsprepareloadAssets: 加载模型等资源setupSpheres: 为球模型设置随机颜色prepareUniformBuffersupdateUniformBufferssetupDescriptorSetLayout:正常操作,常量在此处进行设置 // Define the push cons原创 2021-06-28 09:02:06 · 240 阅读 · 0 评论