wordpress 基础seo建站,wordpress循环所有文脏,dede微电影网站模板,商机互联网站建设A*的估价函数#xff1a;例如A-C#xff0c;会计算A到B的距离B到C的距离作为成本#xff0c;雕刻不会导致全局路线的重新计算#xff0c;凸多边形是一个内部为凸集的简单多边形。 简单多边形的下列性质与其凸性等价#xff1a;1、所有内角小于等于180度。 2、任意两个…A*的估价函数例如A-C会计算A到B的距离B到C的距离作为成本雕刻不会导致全局路线的重新计算凸多边形是一个内部为凸集的简单多边形。 简单多边形的下列性质与其凸性等价1、所有内角小于等于180度。 2、任意两个顶点间的线段位于多边形的内部或边上。 3、多边形内任意两个点其连线全部在多边形内部或边上。凸多边形是一种有用的表示因为我们知道多边形内的任意两点之间没有障碍物overlay屏幕空间相机子元素直接在屏幕上画不依赖相机静态游戏对象预计算时不要包含动态对象否则增大内存运行时候也没用cookie阴影是根据光源的位置和投射纹理实时计算的跟具体模型无关Use Color tints to alter the color of the texture : 在使用Color Tints时通常是在着色器中将纹理贴图上的颜色和Color Tints的颜色进行混合得出最终的颜色。这种混合是在像素级别进行的也称为着色器代码中的片元着色 probuilder快速创建场景关卡原型 非人型动画不支持重定向不需要avatar 环境光没有方向所以没有阴影 Bloom效果的原理是在图像中检测高亮区域然后对这些高亮区域进行模糊处理最后将模糊后的图像叠加回原始图像中。Bloom效果可以让高亮区域的光扩散到旁边本来阴暗的区域 色调电影滤镜 屏幕空间环境光遮挡:SSAO技术的原理是在屏幕空间中对每个像素进行采样然后通过比较采样点周围的深度值来判断该像素点是否被周围的几何体所遮挡。遮挡的程度将影响像素点的明暗从而形成环境光遮挡的效果。 SSAO的作用是在物体之间的接触面或紧密区域增加阴影效果使得物体看起来更加贴近于环境而不是简单地叠加在一起。通过模拟环境中光的散射和遮挡效果SSAO可以增强场景的真实感和立体感让场景看起来更加细致和自然。 如果方向光在被遮挡物的背后朝向被遮挡物被遮挡物比较明亮反而相机看向遮挡物遮挡物不明亮此时后处理的环境光遮挡就会把被遮挡物变暗造成错误的效果 “渐晕”Vignette是一种用于调整图像边缘亮度的后处理效果。它通过向图像边缘逐渐加深暗度或者减少亮度使图像的中心区域更加突出 镜头失真一种模拟相机镜头失真效果的后处理效果。相机镜头失真是相机镜头在成像过程中产生的一种畸变通常由于光学元件的形状和特性导致桶形畸变Barrel Distortion 桶形畸变是一种凸透镜失真造成图像中心区域向外弯曲。这种失真会使直线变得弯曲中心区域的物体看起来变得比较胖。枕形畸变Pincushion Distortion 枕形畸变是一种凹透镜失真造成图像中心区域向内弯曲。这种失真会使直线变得弯曲中心区域的物体看起来变得比较瘦。可以让屏幕图像向中间扭曲成一个个圆圈
unity的导航网格不需要collider就可以烘焙地形可以不加collider然后使用空对象但是terrain可以分块相邻地块会分成一个组可以用于导航
terrain画笔就是一个二维图像terrain邻接仍然是独立的运行时候不会变成一个mesh合并为一个mesh合并材质性能是最好的如果是新分一个相邻瓦片利用原有瓦片的镜像生成但是如果是一个老的相邻瓦片已经修改过高度信息此时和原有瓦片mirror连接生效的应该只会是高度交叉混合地形孔洞可使用光照、物理和导航网格 (NavMesh) 烘焙。Unity 会在您绘制孔洞的区域中丢弃地形信息以确保光照、地形碰撞体和烘焙导航网格的准确性。这里的物理指得是terrain collider绘制孔洞会影响光照计算即光线不会穿过孔洞的地方进行照明。这确保了在场景中显示正确的阴影效果使得孔洞区域没有光照的影响,地形碰撞体会相应地调整确保角色或物体不能穿过孔洞的区域。遮挡纹理是决定某个面的所以是(n-1)(n-1)高度是每个顶点的高度所以是nnunity 的terrain在编辑的时候会自动烘焙高度图地形图层平铺图片的大小应该是多少每次绘制的距离应该是多少 平铺纹理反复使用一张图片直到铺满整个区域当使用较低的不透明度值时每次操作只会对待绘制区域的一小部分顶点进行高度修改。这可能导致需要多次重复绘制才能使整个区域达到目标高度。只有第一个纹理会自动蔓延到瓦片
在Unity中地形瓦片的渲染是由引擎自动处理的而不需要手动合并地形瓦片。Unity的地形系统会自动将相邻的地形瓦片进行优化和合并以提高渲染性能。当相邻的地形瓦片使用相同的材质时Unity会尝试将它们合并在一起以减少绘制调用和批处理次数从而提高渲染效率。
渲染管线兼容材质兼容着色器材质是着色器引用渲染状态会在测试阶段使用
如果particlesystem里面没有启用renderer模块particlesystem粒子特效就看不到了
linerenderer可以通过指定一系列的顶点来创建线条然后自动在这些顶点之间插值形成平滑的线条在这些顶点之间插值通过线性插值的算法插值出直线
线渲染器 (Line Renderer) 不渲染宽度以像素为单位的线。它会渲染宽度以世界单位为单位的多边形。线渲染器 (Line Renderer) 使用与轨迹渲染器 (Trail Renderer) 相同的线渲染算法不支持对一个面片进行渲染
如果双面全局照明没有开启引擎将只考虑物体的正面对光照的影响忽略物体背面的光照计算。
在 Unity 的 Terrain 绘制中贴图绘制的采样范围是以笔刷中心为中心的。当您用笔刷绘制时Unity 会以鼠标指针位置为中心从贴图中采样一定大小的区域并将这个采样范围的内容应用到地形上。中心往两边采样的而绘制的效果会在中心点附近呈现
如果您未分配法线贴图纹理并在地形设置中启用实例化则地形将使用从地形高度图生成的法线。实例化需要同样的渲染数据来源因此需要一张图 half 本地方向向量位置颜色 float 世界坐标位置 线性空间下白色是幺元黑色是零元贴图遮罩就是颜色相乘 外发光法线和视角方向越边缘位置越接近90度以此点乘 shader graph上的uv节点是uv坐标系 shadermap里remap的值有可能是负数即使表现为0 unity内置对象池
材质层堆叠Stack Lit 支持多层次的材质叠加允许你在单个材质上添加多个图层每个图层可以有不同的属性和贴图。这样可以实现复杂的材质效果如涂层、污渍、湿度等。stacklit自动混合顶点颜色和优化合批
摆动的树木灌木飘动的旗帜海面的波浪效果都是顶点位移动画简单爆炸效果在法线方向叠加噪音的效果
shadergraph preview宏给定默认值防止效果不可视化
色阶0到255的直方图每列代表像素点个数就是明暗亮度级别的控制 调整色阶也可以造成灰色调但是太暗的地方会比较严重算法就是比值法的运用移除色调之后的黑白灰图片就是色阶了按照情况选择跳阶 色相各种颜色的名称红绿蓝 饱和度越低越接近灰色越高越接近纯色 明度越高越是白色越低是黑色色调是色相加饱和度移除色调是一张黑白灰图。然后可以给亮部增加暖色调暗部增加冷色调 边缘光就是外发光 阴影实现就是和漫反射直接相乘高光应该是不受漫反射影响的 阴影手绘控制为了好看手动绘制贴图阴影 阴影颜色一致处理多乘一个阴影相关的颜色变量shadercolor可由投射的那个物体的shader传进来在阴影投射贴图生成的时候记录shadercolorattenuation接近0代表处于阴影中或者增加阴影颜色接受阴影 HDR亮度范围和灰度范围都远超256 可以让boom只泛光超过一定级别亮度范围的
灰度图里面是一个灰度值其他颜色图里面是一个color值
偏移对add强度对乘法衰减对power
阴影级联远距离使用低分辨率阴影贴图优化计算
只考虑positionview和camera relative rendering的差别就是z不一样 burst可以翻译方法和类直接到到高效的机器码然后运行性能好不需要运行时及时编译
双面渲染从三角形遍历开始不同计算
纹理第一个属性是缩放第二个属性是偏移
切向量垂直法向量但是法向量垂直向量不止一条所以还由uv决定朝向
漫反射计算输得nol是光照射不到的阴影部分的地方计算边缘光的时候不能考虑阴影地方所以要用nov乘以nol
明暗颜色的控制分离色阶以后乘以个颜色就能控制了
按键立即生效为了快速响应writedefault能让动画影响原本不受影响的骨骼
blendtree阈值右边的数值可以根据跟原有阈值的比值法求出这个代表播放速度
创建avatar之后可以删除预制体内的骨骼了勾选优化相关即可avatar里面保存了骨骼信息的复制 cull update transforms看不到时候非控制transform还是会计算变换和ik不计算
vo避障算法相对位移判断在不在三角形范围内 具有起始运动的向量抛物线也不用分解直接无聊除重力外其他因素保持v乘以t求出来的位置加上重力影响得到的位置就行了。用向量分解v余弦值加vsin值等于v可以证明
animator状态打断当前状态已经在移向下一个状态可以从当前状态改变到另外一个状态的时候打断这个移向打断源可以是当前状态或者下一状态根据优先级 不勾rootmotion动画根据动画绝对数据直接修改每一帧物体的坐标值和角度值勾了是根据相对位移和旋转更新物体motion属性而且会继承重写了onanimatormove后rootmotion就没用了完全由回调函数决定
m1v1m2v2 m1v1’m2v2’ 用牛二牛三可以证明由于爆炸碰撞类问题作用时间很短作用过程中物体的位移很小一般可忽略不计可以把作用过程作为一个理想化过程简化处理即作用后还从作用前的瞬间的位置以新的动量开始运动unity这个贝达t是1s
动量定理:Ftmv′mv Ft是冲量等号右侧是动量的增量。Impluse内t对应的是1s10/1 说明是10m/s
Ftmv′mv可以用牛二证明
unity addfoce添加一个恒力但是这个力只持续一次的fixedupdatetime的时间如果600的加速度就是带来600*0.02的速度然后以这个速度运行
使用impluse可以保障带来稳定想要的速度 ik算法 effector效果器起始骨骼的位置 basebone结束位置 onlateupdate会发生在updatefixedupdate动画更新之后 lefthand就是手腕的位置spine是心脏位置
浮点数表示法先把十进制数表示成二进制数 通道就是一张贴图上面的uv集合
修改sharematerial的属性会同时修改到项目中的存储 unity一个batch至少包含一个drawcall 材质不同的mesh没办法减少batches材质相同可以
动画也不会修改骨骼的局部坐标修改的是旋转,CCD IK同理
先缩放然后旋转平移所以父物体的旋转会影响到子物体的位置
PCI-E串联只需要点对点用一个针脚不需要像其他并行一样多个所以可以降低设备成本 磁盘是直接存取先计算磁道位置计算到具体的某个面即可然后旋转磁盘磁道代表顺序移动
list是可以包含重复元素的集合换装合并后骨骼绑定bones需要且可能是重复的后续骨骼权重的偏移重复赋值也是按顺序来对应的骨骼权重是根据顶点影响数量来看的比如说一个顶点受4根骨骼的影响哪4根在绑定bones里面寻找。合并后骨骼组局部坐标的偏移发生了变化所有骨骼动画参数是在自己bone空间下做的动画在计算时候会以这个空间作为基础来变换就是bineposes换装的贴图一定是动态合的避免图片非常大
https://blog.csdn.net/YuAnHandSome/article/details/128250339 滑行是计算摩擦力ik控制左手的握枪动画
transform.rotation是基于forward来表达的
collider应该使用getcontact接触点而不是collidercollider位置不一定精确接触点一定精确
导航玩家代理的回避优先级导航link是基于对象的agentlinkmover定义link的时候的移动表现拿武器的一组动画和空手的一组动画可以分同步层或者子状态组分开通过_forward求right_right new Vector3(_forward.z, 0.0f, -_forward.x)利用三角形旋转相似证明ik控制左手的握枪动画Normalize归一化会把长度不为1小于1的数也增大变成1所以使用时候要注意切换到ik目标问题可以使用lerp混合解决硬切ik本身就是插值动作的设置权重为1的时候是插值过去的copy动画文件用animation编辑动画本身在播放之间会有0.25s的混合时间如果ik第一时间就开启可能会有不好的效果延迟0.2的延迟播放在基础动作播一段之后再ik可以防止距离过远的穿模问题
iskinematic设置velocity不会运动
射线检测获取碰撞点坐标和法线可以使用raycasthit结构体
input manager的gravity是按键松开后多久回到0状态越大越快
idle walk run混合树移动中有可能会造成角色右脚刚迈前完下次继续迈前的问题所以避免walk到run的混合这个是因为walk和run动画剪辑的不同步比如0s时候右脚跨前的run但是walk左脚跨前就会导致walk左脚在前切换到run时候左脚继续向前移动要保持比例关系是同步的 forward初始时如果是右脚向前那back初始就必须是右脚向后forward与back之间一定有个idle 检测与上层的线连接过渡如果过渡都不对那一定有问题 混合树左脚出完以后切另外一个混合同步的状态可以从右脚开始左脚出到中间没出完切之后继续出左脚 只要有物体碰到boxbox就应该会收到一个碰撞的力的影响不需要自己给box添加力只要box带有刚体即可以前box没动是因为box没刚体
瞄准镜头状态的时候最好只有walk没有run这样防止镜头摆来摆去造成射击动画不准
Mathf.Clamp01/Quaternion.AngleAxis/TransformDirection/mathf.Atan2/NormalizeAngle/Quaternion.LookRotation可用于计算forward/animator.GetBoneTransform
fov是前方左右和上下的椎体不是简单的左右视野检测可以使用fov模型
ragdoll击中脚的位置可以让角色向前倾头位置让角色向后倾
关节描述的是连接体之间的相对运动如果motion和旋转锁定对于外力情况下会同时影响连接体一起运动但是之间不会有相对运动
跳跃没有启用rootmotioncollider和人物root坐标不变是怎么跳上台阶的使用了刚体添加了力使得造成了角色的位移 同一个面可以通过不同的旋转方式获得
直线与平面要么相交要么平行
输入停止死区0.05f停止走路
释放技能攻击中接受向左输入比如左砍分层动画解决向前砍改成左砍
输入停止死区0.05f停止走路
平面位置与点集的判断GeometryUtility.TestPlanesAABB与bounds点有交集返回true
_rigidbody.velocity animator.deltaPosition; 控制npc的动画位移rootmotion可用于受击时候的位移
父物体带有刚体孩子里面没有刚体刚体有collider istrigger去碰另外一个也会收到ontriggerenter时间
如何确定攻击打到盾上 : /// /// Get Angle between transform position and hit point /// /// /// /// [图片] /// public static float HitAngle(this Transform transform, Vector3 hitpoint, bool normalized true) { var localTarget transform.InverseTransformPoint(hitpoint); var _angle (int)(Mathf.Atan2(localTarget.x, localTarget.z) * Mathf.Rad2Deg); if (!normalized) return _angle;if (_angle 45 _angle -45)_angle 0;else if (_angle 45 _angle 135)_angle 90;else if (_angle 135 || _angle -135)_angle 180;else if (_angle -45 _angle -135)_angle -90;return _angle;}判断攻击点在自己本地的与z轴的角度角色处于受击动作中又被攻击了利用hasexittime到受击动作设置可以自己到自己只有离开的时候才使用hasexittime即可解决
rgb是可以表示亮度的利用animationspeed实现顿帧
采样频率大于等于工作频率的二倍才能恢复出实际波形,数字信号处理里有详细说明
采样定理不仅仅是为了捕捉信号的频率信息还为了防止混叠现象的发生。混叠是指高于Nyquist频率的信号被错误地重构为低于Nyquist频率的信号。如果采样频率等于信号频率那么在信号的正负半周期之间无法区分从而导致混叠。
勾了is Kinematic去碰其他物体就没有反作用力把他们推开
弩箭击中发光特效爆裂箭的感觉
同级别下同一层内进入不需要离开时间大于离开需要离开时间回到父级离开强调离开时间逻辑上来说是没有exit而且重新掉了一下enter所以无视exit的exit time
满足刚体两个物体中其中有一个istrigger重合带刚体都会收到ontriggerenter
设置velocity返回的效果速度仍受碰撞和回避网格等处理SetDestination之后除非到达目标点或者重设位置为当前位置否则velocity设置也只会影响几帧一段时间NavMeshAgent desiredVelocity代表想要朝向目标点的希望速度所以始终与目标点有关与velocity无关手动每帧设置velocity是一个固定值如果碰到动态障碍物会主动停下来利用desirevelocity反向退velocity没有问题在游戏运行中的时候对运行中的物体停下来后启用雕刻功能使用打开NavMeshObstacleoverlaysphere比spherecast好很多navmeshagent是每帧更新位置nextPosition是模拟位置即时updatepositionfalse;也会一直随时间模拟navmeshagent设置nextPosition受网格连接性影响但是不受动态障碍物影响要updateposition支持的才受
受到攻击打到后滚动成功就不受伤害 攻击无法滚动, 本质上跟可以放一个更大的包围盒同理一个父物体下两个collider大小都可以与trigger碰撞到时候可以获取到正确信息pathPending为false表示路径准备完毕还没有开始移动的一帧运动为agent路径结束了状态否则为true
unity的导航网格有容错机制在离开网格一定范围内能自动锁到最近的网格点就是updatePosition不会变成falseisonnavmesh还是为true下次更新直接到这个目标然后就可以继续chase target了并且如果根据agent的desiredVelocity关于这个最近的网格点可以记录插值desiredvelocity每帧然后传到动画参数里面去利用动画的deltaposition反向更新agent因为更新agent的时候使用的是velocity所以还是会瞬移过去这里只能使用先enable等与false然后isonnav就是false时刻检查是否isonnav用SamplePosition,navmesh的方法检查到了再开agent否则利用动画更新位置目标是targettransform利用动画更新位置还要判断如果到了isonnav但是还不在网格内要利用nextposition的位置来更新动画朝向这样动画会朝向最近网格点移动而不是敌人isonnav的时候可以开agentupdateposition还不能开UnityEngine.AI.NavMesh.SamplePosition踩到点的时候isonnav就会是true只有真的到了位置Vector3.Distance(agent.nextPosition, transform.position)小于0.1f时候才是真的到了nextposition一定是网格内的点
agent开了updatePosition没开应该走nextPosition逻辑
主存就是内存
updateposition开了就是导航网格内的destination逻辑
引发ui重建问题 setactive 设置transform
打断合批 重叠问题 不同canvas
卡通渲染 色阶分段数 色阶颜色区分 色阶界线融合处柔边 高光边界处柔边 高光颜色区分 smoothstep控制边界处柔和问题
实际使用 掩码一组机器码位的数据 状态机连线状态转移图NFA的应用 渐变色属性定义域为生命周期值域为颜色的函数 正交矩阵的逆 矩阵变换键盘输入转到相机空间求方向角度旋转角色 抛物线曲线贴花投射技能动量守恒定律增加爆炸发射力物件的冲击同理 双射关系纹理贴图的运用 集合运算补集 鼠标射击位置发射线碰到地面求地面与主角的方向向量跟坐标转换没有关系 多种射击效果平射子弹散弹火箭弹射线激光 火箭弹的初始朝向算法跟散弹一样 受击位移分层的动画 分层动画攻击位移适用于攻击动作仅包含上半身 ik算法 向量空间下的计算 纹理的平铺模式采样 平面位置与点集的判断GeometryUtility.TestPlanesAABB与bounds点有交集返回true