首页
CALL1CE
取消

复盘动态光照系统

一、基础动态光照原理 1.光源     需要写一个光源的shader,光源的计算方式如下: 2.影子计算     计算方式与解析如图: 3.新的光源的影子盖住旧光源的问题     开启z缓冲,将影子变为透明的存在,并置于自己对应的光照上面。如下图: 二、基础动态光照代码实现 1.shader的编写     创建一个shader作为光源 shd_light...

复盘生成随机迷宫算法

一、回溯生成普通迷宫 原理 首先要像上图一样,将地面和墙块分隔开来,绿色的是地面,灰色的是墙体 然后选择靠近边缘的地面(上下左右的边)作为起点,在这个地面砖块周围即上下左右四个方向随机寻找一个地面砖块,找到就将他们联通,把两个地砖之间的墙变为绿色的地砖 然后以第二步找到的格子作为新的起点,开始递归,重复第二步,直到某个格子的周围...

力扣-最大子数组和 & 买卖股票的最佳时机II

贪心的本质:局部最优推出全局最优 53. 最大子数组和 class Solution { public: //贪心算法 //从第一个开始计算序列和,一旦和变为负数,那么就重置为0,重新计算后面序列的和 int maxSubArray(vector<int>& nums) { int count = 0;//储存每段序列的和 ...

力扣-分发饼干 & 摆动序列

455. 分发饼干 class Solution { public: int findContentChildren(vector<int>& g, vector<int>& s) { sort(g.begin(), g.end()); sort(s.begin(), s.end()); int...

力扣-N皇后 & 解数独

51. N 皇后 class Solution { public: vector<string> path; //某一种解法 vector< vector<string>> ans;//解法集合 //额外加2列 int board[11][11] = {0}; //放棋子的位置是 1~9 0 和 10是边界,永远是0 ...

力扣-全排列II & 重新安排行程

47. 全排列 II class Solution { public: vector<int> path;//单一序列 vector< vector<int>> ans;//序列集合 bool isUsed[8] = {false};//回溯一整根树枝时需要判断某个位置的数字是否使用过 //回溯三部曲 //1.确认...

力扣-递增子序列 & 全排列

491. 递增子序列 class Solution { public: vector<int> path;//储存某个单一子序列 vector<vector<int> > ans;//答案集合 //回溯三部曲 //1.确认返回类型、参数 void backtracing(vector<int>&amp...

力扣-子集 & 子集II

78. 子集 class Solution { public: vector<int> path;//储存每一个组合 vector<vector<int> > ans;//子集 //1.回溯三部曲,确认返回类型、参数 void backtracing(vector<int>& nums, int st...

游戏设计艺术-学习笔记

第一章 太初之时,有设计师 ​ 游戏设计师最重要的技能是倾听 ​ 五种倾听:倾听 团队、受众、游戏、客户、自己 的声音 。 第二章 设计师创造体验 ​ 人们在玩游戏时会产生一种体验,缺少体验的游戏毫无价值。游戏体验会产生特定的感受,选择感、自由感、责任感、成就感、友情和其他只有基于游戏体验才能获得的感受。 一号透镜:情感 ​ 为了确定你创造的情感是正确的,问自己这几个问...

你好,世界!

测试 //代码片段 int main(){ hello world; }     图片一直上传不上picgo,就只是因为仓库名打成ImgStge了,少了个a,然后又莫名放到了代码框里……