06 2022 档案

摘要:*为什么要引入齐次坐标? 缩放和旋转变换都可以用矩阵乘法的形式计算,而平移比较特殊,如果不增加维度,则必须用另外一种形式表示。 以二维为例,点和矩阵的表示都是二维的,无法用矩阵乘法的形式表示平移变换,因此需要加多一个维度,从二维变为三维。同理,三维的矩阵需要增加第4维。 *齐次坐标的表示方法? 对于 阅读全文
posted @ 2022-06-20 16:08 银龙背上的骑士 阅读(65) 评论(0) 推荐(0) 编辑
摘要:BRDF全程是双向反射分布函数(Bidirectional Reflectance Distribution Function,BRDF),反应了物体表面对光的反射程度。 这刚好是属于材质的一种重要属性,当然除了反射属性,材质还包含折射属性(跟反射一起合称BSDF)。 因此我们基本可以认为,材质== 阅读全文
posted @ 2022-06-14 14:07 银龙背上的骑士 阅读(365) 评论(0) 推荐(0) 编辑
摘要:在屏幕上呈现的三维物体的明暗和颜色,会受场景的光照的影响,如何计算这些光照造成的明暗颜色呢?一般来说有三种方法: 一、基于光栅化的经验模型 基于经验,我们发现一个物体上的光照,似乎可以分成3种:漫反射、高光、环境光,我们把这3种光线分别计算出来,再叠加在一起。如经典的布林-冯着色模型: 漫反射计算: 阅读全文
posted @ 2022-06-10 14:12 银龙背上的骑士 阅读(369) 评论(0) 推荐(0) 编辑
摘要:路径追踪是一种光线追踪方法,原理是: 从视点向像素点发出若干直线,这些直线会碰撞到光源或者物体,如果碰撞光源,得到能量L;如果到物体,从碰撞点继续发出一条直线(模拟光线反弹),收集到能力O。如此循环,直到没有碰到光源或物体。把所有的能量L和O积分,即得到这个像素的总能量。 先说最终最优的表达式和伪代 阅读全文
posted @ 2022-06-10 10:15 银龙背上的骑士 阅读(644) 评论(0) 推荐(0) 编辑
摘要:蒙特卡洛积分是区别于黎曼积分的。 黎曼积分,可以找到一个导数函数,通过求原函数,下边界-上边界即得到积分面积。 如x2,原函数为1/3x3。 可有些不好表示成函数的积分怎么求?例如下图这个曲线,无法通过找原函数求面积。 蒙特卡洛积分的思想是,通过在区域内多次采样再求平均,得到近似的面积。 这里表示采 阅读全文
posted @ 2022-06-08 23:12 银龙背上的骑士 阅读(1250) 评论(0) 推荐(0) 编辑
摘要:最小堆 function MinHeap:Ctor(tData) self.tArray = tData or {} if #self.tArray > 1 then self:adjust() end end function MinHeap:GetSize() return #self.tArr 阅读全文
posted @ 2022-06-06 19:30 银龙背上的骑士 阅读(27) 评论(0) 推荐(0) 编辑
摘要:记录一下: 规则:1.若在跨服赛季,逻辑服次服由于宕机错过了结算奖励,服务器将不会补发奖励,而由运营根据日志补发;2.若世界服正常,逻辑服宕机,重新连上世界服后后仍在匹配时间内,则正常匹配;3.若世界服正常,逻辑服宕机,重新连上世界服后后超过了上次匹配时间,则单独进行跨服;4.若世界服宕机,重新连上 阅读全文
posted @ 2022-06-06 19:25 银龙背上的骑士 阅读(184) 评论(0) 推荐(0) 编辑
摘要:SLG游戏中经常有边界显示的需求,如某个城市的视野范围、补给范围等。 显示边界的步骤: 1.收集所有范围内的格子。一般SLG的地图都是由格子组成的,找到所有的格子; 2.得到边界数据。根据收集到的格子,我们可以计算出“包着”这些格子外的边界数据,一个简单的思路是,遍历所有格子的每条边,没有相邻格子的 阅读全文
posted @ 2022-06-06 19:22 银龙背上的骑士 阅读(459) 评论(0) 推荐(1) 编辑