VS2022 使用窍门 快捷键 常见 ctrl + Q,功能搜索 ctrl + W,选择光标所在的单词 ctrl + R + R,重命名光标所在的单词 ctrl + T,代码搜索 ctrl + A,全选 ctrl + shift + A,添加新文件 ctrl + S,保存当前文件 ctrl + shift + S,保存所有文件 ctrl + D,复制光标所在的行 ctrl + F,查找与替换 ctrl + shift 2024-11-23 #Engineering #VS2022
博客传送门 博客 CatDogEngine RiotGames Sébastien Hillaire’s website Eric Bruneton Scratchapixel WalkingFat Wyman 的原创技术博客 Inigo Quilez Kevin Beason Candycat Blog Wicked Engine Net Milo 的游戏开发 白玉楼之梦 - szszss’ blog Se 2024-10-06
现代 C++ 随记 序言 现代 C++ 相关的笔记。 inline 和 static 唯一定义原则 https://en.cppreference.com/w/cpp/language/definition extern int a; 是声明。 int a;, int a = 1;, extern int a = 1; 都是定义。 void foo(); 是声明。 void foo() {} 是定 2024-05-02 #CPP
GGX+Smith 微表面 PBR 漫反射光照 原标题 PBR Diffuse Lighting for GGX+Smith Microsurfaces 通用的微表面 BRDF 通用形式 宏观表面的 BRDF 只是许多微表面的平均。 通用形式 ∫Ωρm(L,V,m)D(m)G2(L,V,m)m⋅L∣N⋅L∣m⋅V∣N⋅V∣dm\int_\Omega\rho_m(L,V,m)D(m)G_2(L,V,m)\frac{m\cdot L}{|N\c 2024-03-26 GDC #Math #Rendering #PBR
守望先锋中的 ECS 系统 原标题 Overwatch Gameplay Architecture and Netcode Component:只保存状态,不含逻辑 System:只有逻辑,没有数据 系统按顺序更新(Tick),每个系统访问多个不同的组件,称之为元组(Tuple) 元组之后被 Sibling 取代了。 系统不关心实体,只关心具体的组件。 World array<System *> hash_ 2024-01-18 GDC #Engineering #ECS
低复杂,高保真:INSIDE 中的渲染 原标题 Low Complexity, High Fidelity: The Rendering of INSIDE 项目中的各种 Trick 与性能优化,其中颜色抖动在渲染中的应用比较有意思。 Dithering 这个问题源于:8 bit 的颜色无法完美还原高精度的渲染结果。 橙线:理想中的原始信号 蓝线:默认的采样方式(floor),可以看到丢失了精度 噪点:人为在原始信号上叠加的 [0, 2023-12-23 GDC #Rendering #Dithering
荒野大镖客 2 中的天气系统 原标题 Creating the Atmospheric World of Red Dead Redemption 2: A Complete and Integrated Solution 整套天气系统渲染的实现,包括大气、云雾、二十四小时、不同天气。 物理基础 这里只考虑单条光路上的单次散射。 以单个粒子为视角,当光线与其交互时,大致会发生吸收(转化为热能)、散射和反弹。 散射向相机的部分 2023-12-19 Siggraph #AtmosphericScattering #Rendering #VolumeRendering #Cloud
漫威蜘蛛侠中的程序化光照 原标题 Marvel’s Spider-Man: Procedural Lighting Tools 程序化布光以及 Probe / Light Grid 分布。 Open World Tiles 将整个世界分成数个 128 x 128 米的 Tile,对于每个 Tile,由数个 JSON 文件描述该 Tile 所引用的资源。 只有玩家当前所在的和周围的 Tile 会流入内存,其余的 Tile 2023-11-21 GDC #GlobalIllumination #Rendering #Procedural
何为一个 C++ 项目 TODO 待整理,但是最近发现了一些有趣的东西,先记一下 CMAKE_MSVC_RUNTIME_LIBRARY 用于在 CMakeLists 里指定 MSVC 使用的运行时库。 MultiThreaded 对应 MT MultiThreadedDebug 对应 MTd MultiThreadedDLL 对应 MD MultiThreadedDebugDLL 对应 MDd 注意这项功能仅在 CM 2023-11-09 #CPP #Engineering
命令行调用 CMake 与 MSBuild CMake 一个 OpenCV 的例子 1234567891011121314@echo offset "ROOT_PATH=%~dp0"set "OPENCV_PATH=%ROOT_PATH%\Frame\Source\ThirdParty\opencv"echo [ opencv ] path: %OPENCV_PATH%cd %OPENCV_PATH% 2023-10-30 #CPP #Engineering #CMake #MSBuild #MSVC