轉自:? www.arvrschool.com/read.php
識別的是3D物體,雖然在4.0中拷肌,Object Reco已經(jīng)成為常規(guī)配置馋袜,對于不規(guī)則的形狀能夠很好識別。但是Cylinder的識別還是有應用場景的趁啸,至少Target處理過程相對容易一些强缘。所以我還是想寫一下這方面的教程。這在很多案例中不傅,都會是很好的應用旅掂,尤其是在產(chǎn)品展示中。The Cylinder Targets sample shows how to detect a cylindrical target and animate a 3D object around the circumference of the cylinder. Key functionality includes:?? ? ? ? Detection and tracking of a cylinder target?? ? ? ? Occlusion handling?? ? ? ? Activate Extended Tracking?? ? ? ? Manage camera functions: flash and continuous autofocus主要特點如下:1访娶、識別的目標是個圓柱體商虐,例如易拉罐等。2崖疤、支持虛實遮擋什么是虛實遮擋的呢秘车?我們一般經(jīng)常能夠看到的時真實物體對象被虛擬物體遮擋了。比如ImageTarget的例子劫哼。但是cylinder targets的例子叮趴,虛擬物體是可以被真實物體遮擋的。這就能形成更加真實的效果沦偎。由于在ImageTarget案例中疫向,target是2d平面的,而cylinder target的案例中豪嚎,識別的對象是3D的圓柱體搔驼。因此會有以下不同的地方:和ImageTarget案例相似,識別的方式一樣侈询,不同的是:
1舌涨、標志制作方式不同
標志制作依然在官網(wǎng)中完成。你會發(fā)現(xiàn)和制作一般的target不同扔字,這里不需要我們選擇圖片囊嘉,那要怎么搞呢?而且需要填寫尺寸的三個參數(shù):頂部和底部圓 的直徑革为,以及邊長扭粱,見下圖所示。D,d為直徑震檩,sL為Side Length琢蛤。注意:請勿將sL與高height混淆蜓堕。兩個特殊的情況,圓柱體和椎體:將三個參數(shù)填寫完成之后博其,形成了一個空白的cylinder標志:點擊之后套才,進入一個奇妙的從來沒有見過的場景:主要分成三個部分,點擊右邊交叉圖像進行圖片上傳慕淡。進入上傳圖片界面背伴,圖片設定需要滿足下圖所示的小字:8位或者24的png/jpg圖片,jpg格式必須是RGB或者是灰度圖峰髓。圖片大小不大于3M傻寂。依次點擊上傳設計好的圖片資源即可。
2儿普、效果呈現(xiàn)不同
最后案例的效果如圖:再次強調(diào):有虛實遮擋功能哦崎逃。沒錯,你會發(fā)現(xiàn)眉孩,足球圍繞著易拉罐旋轉,當在易拉罐另一側時勒葱,會看不到足球浪汪,到了正面之后又會出現(xiàn)足球。這就是虛實遮擋凛虽。這個在AR的三要素之一——虛實融合中死遭,也是研究的主要課題之一。
根據(jù)前面介紹的凯旋,可以看出Side Length的重要性呀潭,同樣從dataset xml配置文件中也能夠看出:
PS:
在官網(wǎng)的Target Manager中上傳自定義的Target。我們只需要設置Upload Side至非,但是要注意Target圖片的寬高比約為2.094钠署。
另外如果需要設置頂部和底部圖片,圖片需要是正方行的荒椭。
設置頂部和底部Target有兩個方面的好處:
便于知道實物朝向谐鼎,正放還是倒放;
當你從上往下看的時候趣惠,這時候頂部就有作用了狸棍。
最后,完成之后味悄,坐標系如下圖所示:
底部中心為原點草戈,Z正向朝上。符合右手坐標系侍瑟。
運行之后的截圖:
替換模型就不用再說了唐片,demo中的足球實現(xiàn)的是繞著圓柱體Target進行旋轉。
voidUpdate ()
{
TransformparentTransform = transform.parent;
transform.RotateAround(parentTransform.position, parentTransform.up, -60*Time.deltaTime);
}