Unity里用HiAR时材质球空max怎么清空材质球办

在学课程 - 的个人主页 - 蛮牛教育 - 国内最大的Unity在线学习平台|Unity培训|Unity3d培训|Unity视频学习|Unity教程 Unreal 虚幻 AR VR - Powered By EduSoho
Gilbert529
1粉丝|3关注相关文章推荐
在Unity3d 中可以通过代码设置 来限定游戏帧率。Application.targetFrameRate=-1;设置为 -1 表示不限定帧率。一般在手机游戏中我们限定帧率为30 就OK了。...
此目标并非一定能达到,只是个期望值,原因是受到电脑硬件和平台(web/pc/mobile)因素的影响FR:徐海涛(Hunk Xu)...
写在前面这一篇是在Digital Tutors的一个系列教程的基础上总结扩展而得的~Digital Tutors是一个非常棒的教程网站,包含了多媒体领域很多方面的资料,非常酷!除此之外,还参考了Uni...
最近转U3D开发,个人认为,精通一种新的技术,最快最好的方法就是看它的document,而且个人习惯不喜欢看中文的资料,原汁原味的东西是最正确的,一翻译过来很多东西就都不那么准确了。于是通读了unit...
以下技巧并不是必须的,但是对于想要提升游戏性能的人来说应该还是很不错的。
优化的常规技巧
n 剖析你的游戏。 不要花费时间来优化那些晦涩的代码或者缩减图形文件的大小,除非这是你游戏的瓶...
帧率低的奇怪问题在优化游戏的时候遇到了一个奇怪的问题,经过一轮的优化之后,游戏的CUP占用率和内存使用都在正常范围(用腾讯cube 或者UWA),在profile 中也没有毛刺,在部分android手...
性能优化是游戏项目开发过程中一个永恒的话题。玩家的需求和项目的要求永远在不停增长,同屏人数、屏幕特效和场景复杂度永远在向着“榨干”硬件的趋势逼近。所以,无论硬件设备发展到何种程度,无论研发团队有多么丰...
drawcall影响的是CPU的效率,而且也是最知名的一个优化点。对DrawCall的优化,主要就是为了尽量解放CPU在调用图形接口上的开销。所以针对drawcall我们主要的思路就是每个物体尽量减少...
Unity3D_NGUI_性能优化实践_CPU卡顿
原贴地址:
http://blog.csdn.net/lijing_hi/article/details/
听到过很多用Unity 3D开发游戏的程序员抱怨引擎效率...
他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)关于AR和Unity的基础知识,请自行前往各自的文档中心进行科普。
本文以国产的为例,日后将尝试
基于Hi AR1.2.0 ( hiar_sdk_unity_.2.0_3c0e908.zip
( 47.4 MB )
Unity3D 5.3.5f1 x64
Windows 7 x64
罗技摄像头(硬件),摄像头支架
制作识别图集
1. 在SDK的管理后台创建一个新应用,获取应用的Appkey和Secret,在Unity中会用到。
2. 在SDK的管理后台中创建图集,并添加图片,完成之后发布图集
3. 把图集和应用进行关联
4. 在SDK的管理后台中下载本地识别包文件,一般是以图集为命名的unitypackage文件。
导入识别图集到Unity
我创建的图集名称:xxdata
图集中有以下两张图片:
battleboard.png
下载的本地识别包文件(xxdata.unitypackage),在导入到Unity中的文件如下:
ImageTargetTextures
battleboard.png
StreamingAssets
xxdata.xml (里面是图集中的图片信息,一行是一张图片的数据,Key值是一个32位字符串)
792c5edbe13ed9822b3c.db(32位的key和xxdata中对应)
22b72d7e5b182ed15e9edeb.db
总结一下就是:
1. 在Editor\ImageTargetTextures\下有以图集命名的文件夹,文件夹中有图集中的图片文件
2. 在StreamingAssets\HiAR\目录下有以图集命名的xml文件和图集命名的文件夹,文件夹下有图片Id命名的db文件
xxdata.xml文件内容如下:
&?xml version=&1.0& encoding=&UTF-8&?&
&KeyItemList&
&KeyItem name=&card& targetID=&22b72d7e5b182ed15e9edeb& width=&535& height=&528& extName=&.png& version=&1.2.0&&&/KeyItem&
&KeyItem name=&battleboard& targetID=&792c5edbe13ed9822b3c& width=&1024& height=&1024& extName=&.jpg& version=&1.2.0&&&/KeyItem&
&/KeyItemList&
32位key值文件名的db文件
某种格式的文件,从里面可以看到HiScene AR Key,猜测db中存储了图片的识别点数据
图集中每个图片有对应的一个db文件,可知此db文件必然和图片有关联关系。
场景层次(Hierarchy)结构:
HiAR Camera (SDK的核心,绑定了两个脚本:HiAREngineBehaviour,TargetManagerBehaviour)
camera (3D相机,渲染3D GameObject,绑定的脚本:HiARCameraBehaviour)
Imager Target (识别点,可以有多个,绑定的脚本:ImageTargetBehaviour,实现这几个接口ITrackableEventHandler, ILoadBundleEventHandler, IRelativeMoveTarget)
识别成功:识别图移动时或者有遮挡时,Transform的属性会发生改变,并且ImageTarget下的Child会显示
识别失败:Transform属性无变化,并且ImageTarget下的Child会隐藏
camera source (一个MeshRenderer,硬件摄像头摄像到的图像实时渲染在此(类似于render texture?))
camera background (2D相机,渲染camera source的图形)
重点解释:
camera (3D相机 Clear Flags为Depth,拍摄场景中的3D GameObject)
camera background (2D相机,Clear Flags为Solid Clear,渲染物体摄像头拍摄的画面)
摄像头拍摄的图像显示在camera source(mesh renderer)上
摄像头拍摄的真实画面和引擎生成的三维物体进行叠加。
AR识别成功的应用
当识别图识别成功之后,执行一些操作,可以理解为Callback。
HiAR的例子是:识别成功之后,播放视频。
当然你可以在识别成功之后,生成一些模型和场景出来,这样就和开发其它游戏一样,可以对Scene中的GameObject进行控制,比如播放动画,打斗,特效之类的。
把识别图上的图像实时渲染在模型上(Material),类型涂鸦。
添加一个待涂包的模型,添加组件:HiARPaint,Shader:HiARPaint
硬件摄像头拍摄识别图(实时拍摄)
根据识别到的图,提取图像生成Material,动态地渲染。
期间会生成几个识别点
过程中如果有拍摄到其它物体,新生成的材质会实时更新
多图识别,就是在简单识别的基础上添加多个ImageTarget
在HiAR Camera(HiAREngine组件) 的属性面板勾选 MuiltTarget
在场景中添加多个ImageTarget,并为每一个ImageTarget选择识别图
动态加载识别目标进行识别跟踪的功能,继承自TartgetDynamic
void OnGUI()
if (GUI.Button(new Rect(30, 30, 200, 80), &Add Key&))
AddImageTarget(System.bine(Application.streamingAssetsPath, Pic1Path), Pic1Key, );
//识别回调
public override void OnDynamicReco(RecoResult recoResult)
Debug.Log(&识别成功。。。。。&);
GameObject gameObject =
gameObject = new GameObject();
if (recoResult.keyType == KeyType.IMAGE)
gameObject.AddComponent&ImageTargetBehaviour&();
Debug.LogFormat(&recoResult.keyType:{0}&, recoResult.keyType);
Target target = gameObject.GetComponent&Target&();
if (target == null)
Debug.LogError(&Get Target Null !&);
target.PixelWidth = recoResult.Width * 0.01f;
target.PixelHeight = recoResult.Height * 0.01f;
gameObject.transform.parent = transform.
gameObject.SetActive(true);
if (recoResult.KeyId.Equals(Pic1Key))
GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
cube.transform.parent = gameObject.
cube.transform.localScale = new Vector3(1.0f, 1.0f, 1.0f);
Debug.LogErrorFormat(&recoResult.KeyId:{0} not equals :{1}&, recoResult.KeyId, Pic1Key);
bindingGameObject(gameObject, recoResult.KeyId);
设置中心点
勾选 ImageTarget (ImageTargetBehaviour组件)的CenterPoint之后,带有物理引擎效果的物体运动就有了中心点。
阅读(...) 评论()unity3d 5.0中代码获取材质this.GetComponent&Material&(),结果为空?_百度知道
unity3d 5.0中代码获取材质this.GetComponent&Material&(),结果为空?
对象是有材质球的啊?怎么获取呢?
我有更好的答案
renderer.materialrenderer.materials
采纳率:90%
来自团队:
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。unity物体必须加材质球吗_百度知道
unity物体必须加材质球吗
我有更好的答案
等于就是另外给了你24个空白材质球,选择“工具”菜单——“重置材质编辑器窗口”命令,它会将全部24个材质球一次性全部重置为初始状态而不会影响场景中的物体的材质材质编辑器上面不是有个叉叉?点一下再确定就行了,或者材质编辑器最上面的菜单栏
我的意思是我放进去的物体为什么教程上还要加材质球
是不是我的图放进去就是贴画,不是实体
采纳率:84%
为您推荐:
其他类似问题
unity的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 max怎么清空材质球 的文章

 

随机推荐