game_shader

游戏之美

凹凸贴图和法线贴图的区别

1、凹凸贴图存储的是高度差信息,8bit灰度图。 法线贴图存储的是法线信息,24bit彩色图。 2、凹凸贴图影响三角面的法线相对光影方向的偏移量( 越凹偏移量越大,计算出的颜色越暗,给人凹陷的感觉; 反之偏移量越小,颜色越亮,给人凸起的感觉) 法线贴图是直接记录三角面的法线相对光...

2019-03-21 10:40:10

阅读数 561

评论数 0

合并子网格/多材质球

1、对于网格贴图坐标在【0,1】范围内的游戏物体,可以合并贴图。 2、对应网格贴图坐标超出【0,1】范围的游戏物体,合并网格,不合并贴图,需要编写定制纹理数的shader。           如果也用合并贴图的方式,会在贴图重复使用的接缝处出现斑马线           (需要在片元着色器...

2017-11-15 15:34:58

阅读数 507

评论数 0

[david]unity3d绘制调用批处理(draw call batching)

要绘制一个gameobject到屏幕上,unity需要调用图像api(dx,opengl)。 图像api对每一个绘制请求都需要做大量的工作,例如输入资源校验,顶点空间信息转换。 特别是在切换不同材质球的时候,图形api要做的工作更多,因为要切换状态(透明,不透明,贴图输入,渲染方式,加载sha...

2017-10-13 17:20:20

阅读数 200

评论数 0

unity3d mac地址校验 有效期验证

FileUtil.cs using System.Collections; using System.Collections.Generic; using UnityEngine; using System.IO; using System.Text; public class...

2017-06-13 09:36:27

阅读数 249

评论数 0

Unity3D IK回调方法OnAnimatorIK不执行

问题:Unity3D IK回调方法OnAnimatorIK不执行 解决方法:回调方法OnAnimatorIK(int layerIndex)所在脚本挂载的游戏对象上的Animator文件中的层,需要打开IK Pass设置。

2017-05-16 17:32:16

阅读数 1612

评论数 0

SteamVRPlugin1.2.1在unity5.6.x中样例场景看不到双手

问题:SteamVRPlugin1.2.1在unity5.6.x中样例场景看不到双手 解决方法:在主摄像机上添加组件Steam VR_UpdatePoses。

2017-05-16 10:00:28

阅读数 1519

评论数 1

Unity3d插件PlayMaker经验

1、疑问: photon触发了两个全局事件,但状态机只处理第一个事件。

2017-05-11 14:20:37

阅读数 675

评论数 0

unity3d network 批量同步(插值平滑)子物体位置和旋转

背景: unity3d官方同步组件NetworkTransform没有做插值平滑,并且不适用子物体. 技术点: 一、使用SyncListStruct同步封装好的结构体列表。 二、插值平滑运动时,有同步值变化的时候,记录物体当前位置,用于两次同步间插值的源值。 源代码: usin...

2017-03-23 17:41:23

阅读数 3386

评论数 0

寻路和动画融合

1.融合动画和使用动画的位移。同步寻路代理和角色的位置。 2.ik头部旋转。 3.鼠标点击移动到对应位置。 using UnityEngine; [RequireComponent (typeof (NavMeshAgent))] [RequireComponent (typeo...

2016-11-29 18:41:21

阅读数 603

评论数 0

unity3d Quaternion.LookRotation 控制车载机抢旋转

设备:htc vive。 实现功能:通过两个手柄控制机枪旋转。 实现思路:旋转机枪的父节点(位置在机枪的旋转基座上),使父节点Z轴始终指向两个手柄的全局中心点。 代码: using UnityEngine; using System.Collections; public class HeavyM...

2016-11-25 18:07:18

阅读数 356

评论数 0

导航报错SetDestination() can only be called on an active agent that has been placed on a NavMesh

原因:初始化导航组件NavMeshAgent 的时候,agent 离navmesh太远。isOnNavMesh属性为false; 解决办法: 在初始化预制体的时候,传入诞生点位置和旋转信息。 GameObject.Instantiate(m_shooter, m_currBirthP...

2016-11-17 13:50:46

阅读数 8160

评论数 3

Unity3d UGUI 自适应屏幕 代码修改Left,Top,Right,Bottom属性值

通过RectTransform 的属性offsetMin,offsetMax来实现; offsetMin   是vector2(left,bottom); offsetMax 是vector2(right,top);//如果Anchors max=(1,1),right,top要传入负数;...

2016-11-01 18:04:29

阅读数 7183

评论数 0

unity3d场景优化

1.场景灯光烘焙。 2.遮挡剔除。 3.lod。

2016-08-01 18:40:26

阅读数 561

评论数 0

unity3d network clientrpc cmd

cmd  is client to server; like fire; clientrpc is server to client;  like respawn;

2016-07-22 18:14:44

阅读数 474

评论数 0

unity3d脚本控制骨骼旋转

1.在LateUpdate()中通过代码控制骨骼节点,可以覆盖动画在Update方法对骨骼节点的控制。 2.如果用鼠标垂直位移控制,要做累加处理     //transform.Rotate(nfew Vector3(0,0,Input.GetAxis("Mouse Y")*s...

2015-12-02 21:17:16

阅读数 4715

评论数 2

如何能在Inspector视图中看到public的接口变量?

思路:start方法中给接口变量赋值,来替代Inspector赋值

2015-12-02 12:19:08

阅读数 233

评论数 0

触发碰撞事件=大于一个刚体(刚体才可能有碰撞)+两个碰撞器(范围)+istrigle为true

1. 要产生碰撞,需要双方都有一个碰撞器,因为这是判断物体是否碰撞的依据,可以理解为,这是一个碰撞范围。 2. 碰撞器只是判断是否碰撞的依据,但是要真正触发碰撞事件,则必须至少有一个物体是具备刚体组件的。 3. 总结:至少存在一个刚体时,才能触发碰撞事件,而判断物体是否碰撞的依据是碰撞...

2015-11-24 13:55:04

阅读数 442

评论数 0

判断点是否在多边形内部

如何判断一个点是否在多边形内部? (1)面积和判别法:判断目标点与多边形的每条边组成的三角形面积和是否等于该多边形,相等则在多边形内部。 (2)夹角和判别法:判断目标点与所有边的夹角和是否为360度,为360度则在多边形内部。 (3)引射线法:从目标点出发引一条射线,看这条射线和...

2015-11-05 15:57:50

阅读数 2201

评论数 0

Unity3D中Quaternion.Euler方法解析

8.3.3 Euler方法:欧拉角对应的四元数 基本语法:(1)public static Quaternion Euler(Vector3 euler); (2)public static Quaternion Euler(float x, float y, float z); ...

2015-11-05 15:56:17

阅读数 327

评论数 0

unity目录结构--三分天下,一主一副一酱油

project 一级目录 酱油:场景【__scenes】 主:资源【_resource】; 酱油:预制体【prefab】 主:静态【static】               texture/shader/material/model/audio 副:动态【animation】 副:脚本【...

2015-10-27 15:31:50

阅读数 444

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭