發(fā)布時間:2024-05-16 16:49:12 瀏覽量:277次
3D模型渲染到2D界面的模型展示效果
在游戲開發(fā)中常常需要在UI界面上顯示一個3D模型,例如時裝界面里人物換裝展示、Boss挑戰(zhàn)界面里選擇Boss展示等等。
本文將介紹一下在Cocos游戲開發(fā)中實現(xiàn)模型展示效果。
渲染貼圖是Camera或Canvas組件的渲染目標對象,渲染管線會使用它的RenderWindow作為渲染的目標窗口。
我們可以把相機畫面渲染到它上面,然后將精靈Sprite的貼圖資源設(shè)置成它。
渲染場景中的相機對象,由項目層的Camera管理。
我們可以通過它的targetTexture指定此相機的渲染輸出目標貼圖,默認為屏幕。
精靈幀資源。
我們通過SpriteFrame的texture設(shè)置貼圖對象資源,可以是TextureBase類型。
接下來我們來實現(xiàn)和平精英中3D模型渲染到2D界面的模型展示效果。
引擎版本:Cocos Creator 3.8.1
編程語言:TypeScript
創(chuàng)建一個新工程,按照指定結(jié)構(gòu)搭建UI。
然后把商城上的雞帶走并做成預(yù)制體借用一下。
新建一個ModelRtt組件,并拖到ModelSprite上。其中包含幾個屬性。
export class ModelRtt extends Component { @property(CCString) modelUrl: string = ""; @property(CCFloat) modelOffsetY: number = 0; @property(CCFloat) orthoHeight: number = 0; modelSprite: Sprite = null;}
最后通過以下步驟完成3D模型渲染到2D界面。
const size = this.node.getComponent(UITransform).contentSize;const modelRtt = new RenderTexture();modelRtt.reset({ width: size.width, height: size.height});
const newNode = new Node();newNode.parent = find("/");const modelNode: Node = instantiate(prefab);modelNode.parent = newNode;modelNode.setPosition(new Vec3(0, this.modelOffsetY, 0));
let flag = false;this.node.on(NodeEventType.TOUCH_START, () => { flag = true; }, this);this.node.on(NodeEventType.TOUCH_END, () => { flag = true; }, this);this.node.on(NodeEventType.TOUCH_MOVE, (event: EventTouch) => { if (flag) { modelNode.eulerAngles = new Vec3(0, modelNode.eulerAngles.y + event.getDeltaX(), 0); }}, this);
// const camera = new Node("Camera").addComponent(Camera); //todo:動態(tài)添加的Camera模型不會動 const camera = this.node.getComponentInChildren(Camera);camera.clearFlags = Camera.ClearFlag.SOLID_COLOR; //設(shè)置緩沖清楚標志位camera.projection = renderer.scene.CameraProjection.ORTHO; //設(shè)置相機投影類型camera.orthoHeight = this.orthoHeight; //設(shè)置正交視角高度camera.clearColor = new Color(0, 0, 0, 0); //設(shè)置透明camera.targetTexture = modelRtt; //設(shè)置目標RenderTexturecamera.node.parent = newNode;camera.node.position = new Vec3(0, 0, 10);
const spriteFrame = new SpriteFrame();spriteFrame.texture = modelRtt;spriteFrame.flipUVY = true;this.modelSprite.spriteFrame = spriteFrame;
【100個Cocos實例】實現(xiàn)和平精英中3D模型渲染到2D界面的模型展示效果
原文鏈接:點擊咨詢
熱門資訊
探討游戲引擎的文章,介紹了10款游戲引擎及其代表作品,涵蓋了RAGE Engine、Naughty Dog Game Engine、The Dead Engine、Cry Engine、Avalanche Engine、Anvil Engine、IW Engine、Frostbite Engine、Creation引擎、Unreal Engine等引擎。借此分析引出了游戲設(shè)計領(lǐng)域和數(shù)字藝術(shù)教育的重要性,歡迎點擊咨詢報名。
2. 手機游戲如何開發(fā)(如何制作傳奇手游,都需要準備些什么?)
?如何制作傳奇手游,都需要準備些什么?提到傳奇手游相信大家都不陌生,他是許多80、90后的回憶;從起初的端游到現(xiàn)在的手游,說明時代在進步游戲在更新,更趨于方便化移動化。而如果我們想要制作一款傳奇手游的
3. B站視頻剪輯軟件「必剪」:免費、炫酷特效,小白必備工具
B站視頻剪輯軟件「必剪」,完全免費、一鍵制作炫酷特效,適合新手小白??靵碓囋?!
游戲中玩家將面臨武俠人生的掙扎抉擇,戰(zhàn)或降?殺或放?每個抉定都將觸發(fā)更多愛恨糾葛的精彩奇遇?!短烀嬗肪哂卸嗑€劇情多結(jié)局,不限主線發(fā)展,高自由...
?三昧動漫對于著名ARPG游戲《巫師》系列,最近CD Projekt 的高層回應(yīng)并不會推出《巫師4》。因為《巫師》系列在策劃的時候一直定位在“三部曲”的故事框架,所以在游戲的出品上不可能出現(xiàn)《巫師4》
6. 3D動畫軟件你知道幾個?3ds Max、Blender、Maya、Houdini大比拼
當提到3D動畫軟件或動畫工具時,指的是數(shù)字內(nèi)容創(chuàng)建工具。它是用于造型、建模以及繪制3D美術(shù)動畫的軟件程序。但是,在3D動畫軟件中還包含了其他類型的...
7. 3D打印技巧揭秘!Cura設(shè)置讓你的模型更堅固
想讓你的3D打印模型更堅固?不妨嘗試一下Cura參數(shù)設(shè)置和設(shè)計技巧,讓你輕松掌握!
8. 虛幻引擎5節(jié)省存儲空間用這招!緩存的清理與設(shè)置
眾所周知,虛幻引擎5(下面簡稱UE5)特別占用存儲空間,僅一個版本安裝好的文件就有60G,這還不包括我們在使用時保存的工程文件和隨之產(chǎn)生的緩存文件。而...
9. Bigtime加密游戲經(jīng)濟體系揭秘,不同玩家角色的經(jīng)濟活動
Bigtime加密游戲經(jīng)濟模型分析,探討游戲經(jīng)濟特點,幫助玩家更全面了解這款GameFi產(chǎn)品。
10. 3D動漫建模全過程,不是一般人能學(xué)的會的,會的多不是人?
步驟01:面部,頸部,身體在一起這次我不準備設(shè)計圖片,我從雕刻進入。這一次,它將是一種純粹關(guān)注建模而非整體繪畫的形式。像往常一樣,我從Sphere創(chuàng)建它...
最新文章
同學(xué)您好!