【Archive】GAMES202 百分比近似软阴影 若要判断当前着色点是否处于阴影之中,我们需要知到该点与光源之间的遮挡关系。一种常见的做法是 Shadow Mapping,假设从光源看向场景,就像做深度测试一样,保存一张从光源处获得的 DepthBuffer,然后比较着色点与光源之间的距离与 DepthBuffer 中对应点的深度,前者更大则代表场景中有另一物体比当前着色点更接近光源,即该着色点被遮挡。 Two Pass S 2021-09-22 #GlobalIllumination #RayTracing #GLSL #JavaScript #Shadow
辐射度量学基础 序言 路径追踪的前置知识。 物理量一览 符号 名称 单位 光度学名称 光度学单位 Q Radiant Energy J Luminous Energy lm.s Φ\PhiΦ Radiant Flux Js\frac{J}{s}sJ / Watt(W) Luminous Flux Lumen(lm) I Radiant Intensity Wsr\frac{W}{sr} 2021-09-14 #PBR #Photometry #Radiometry
【Archive】GAMES101 渲染管线中的变换矩阵 在渲染管线的前期,光栅化之前,需要对顶点和相机的坐标进行标准化变换,然后进行视口变换进入屏幕坐标空间。 相机的定义 位置:e⃗\vec{e}e; 看向:g⃗\vec{g}g; 上方:t⃗\vec{t}t; 我们规定相机位于 (0, 0, 0) ,看向 -Z,上方为 Y。 对相机和顶点应用同一个变换矩阵,他们的相对位置则不变。 视锥体的定义 已知 fovY 和 aspe 2021-09-03 #LinearAlgebra #RayTracing #AntiAliasing #Rasterization
【Archive】背包,卡肉,镜头抖动,有限状态机 背包系统 背包 GUI 的实现、ScriptableObject、数据的存储与读取。 层级结构 Bag 挂载 BagOnDrag 脚本 Grid 挂载 Grid Layout Group 组件,使其子物体(Slot)整齐地排放 Slot 挂载 Slot 脚本,更改其子物体(Item)以实现拖拽 Item 挂载 ItemOnDrag 脚本和 CanvasGroup 组件,以及作为 butto 2021-08-29 #AI #C# #Gameplay #Unity
【Archive】Sunny Land, a platformmer game 序言 使用 Unity 制作的 2D 平台跳跃游戏 压缩包大小:46MB 平台:Win 只有三关,根据游戏经验的不同,完整的游戏时长会在 10min - 60min 之间 百度网盘 提取码: twwx 蓝奏云 一览 设计 林田宏一曾提到过任天堂的关卡设计公式:介绍、练习、掌握、决战。我对此的理解是: 介绍 在安全的环境下向玩家介绍一个新机制。 练习与掌握 逐渐提高难度,尝试将新机制与 2021-08-19 #Gameplay #Unity #GameDesign
【Archive】Make Your First Game 角色控制,包括移动与多段跳 朝向 1234float forward = Input.GetAxisRaw("Horizontal");// 返回-1,0,1if (forward != 0) { transform.localScale = new Vector3(forward, 1, 1);} 移动 1234567891011public flo 2021-08-12 #AI #C# #Gameplay #Unity
【Archive】Soul Forging, a Minecraft mod 本模组所使用的 Forge 版本为 1.12.2-14.23.5.2847 序言 欢迎使用SoulForging! 这是一个关于灵魂和金属的模组,新的武器,新的盔甲,新的附魔,新的食物,新的村民,新的敌人等待着你的探索… 以“使原版用处最小的金发挥作用”为切入点 添加新的金属锭“赋魂金”,数值高于钻石且拥有与金相同的附魔品质 为大部分实体添加新 2021-08-07 #Gameplay #Forge #Java #Minecraft #Mod
图形/引擎/渲染相关面经 网易互娱:游戏引擎研发工程师 C++ class 与 struct 有什么区别? 了解过内存对齐吗,为什么要对齐,不对齐会怎样? struct 内存对齐 __declspec(align(#)) 的用法和大小计算 struct TA { char a; int b; char c; }; struct TB { 1970-02-01
Hello World Markdown Test 代码 std::string str; 1234567#include <iostream>int main(){ std::cout << "Hello CPP" << std::endl; return 0;} 公式 z˙=b\dot{z}=bz˙=b Lo(x,ωo)=Le(x 1970-01-01