博客專欄

        EEPW首頁 > 博客 > Three.js教程:自定義頂點UV坐標

        Three.js教程:自定義頂點UV坐標

        發布人:xyni2023 時間:2023-04-18 來源:工程師 發布文章




        推薦:將NSDT場景編輯器加入你的3D工具鏈

        其他工具集: NSDT簡石數字孿生

        自定義頂點UV坐標

        學習自定義頂點UV坐標之前,首先保證你對BufferGeometry的頂點數據、紋理貼圖都有一定的理解。

        #頂點UV坐標的作用

        頂點UV坐標的作用是從紋理貼圖上提取像素映射到網格模型Mesh的幾何體表面上。

        瀏覽器控制臺查看threejs幾何體默認的UV坐標數據。

        const geometry = new THREE.PlaneGeometry(200, 100); //矩形平面 // const geometry = new THREE.BoxGeometry(100, 100, 100); //長方體 // const geometry = new THREE.SphereGeometry(100, 30, 30);//球體 console.log('uv',geometry.attributes.uv); 復制代碼

        #紋理貼圖UV坐標范圍

        頂點UV坐標可以在0~1.0之間任意取值,紋理貼圖左下角對應的UV坐標是(0,0),右上角對應的坐標(1,1)

        #自定義頂點UVgeometry.attributes.uv

        頂點UV坐標geometry.attributes.uv和頂點位置坐標geometry.attributes.position是一一對應的,

        UV頂點坐標你可以根據需要在0~1之間任意設置,具體怎么設置,要看你想把圖片的哪部分映射到Mesh的幾何體表面上。

        /**紋理坐標0~1之間隨意定義*/ const uvs = new Float32Array([     0, 0, //圖片左下角     1, 0, //圖片右下角     1, 1, //圖片右上角     0, 1, //圖片左上角 ]); // 設置幾何體attributes屬性的位置normal屬性 geometry.attributes.uv = new THREE.BufferAttribute(uvs, 2); //2個為一組,表示一個頂點的紋理坐標 復制代碼

        #獲取紋理貼圖四分之一

        獲取紋理貼圖左下角四分之一部分的像素值

        const uvs = new Float32Array([     0, 0,      0.5, 0,      0.5, 0.5,      0, 0.5,  ]);


        作者:yvette
        鏈接:https://juejin.cn/post/7223187660470517816
        來源:稀土掘金
        著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: 編輯器 數字孿生 3D

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 正镶白旗| 池州市| 巩义市| 隆德县| 家居| 志丹县| 铁岭县| 德昌县| 集贤县| 万盛区| 北辰区| 穆棱市| 治县。| 綦江县| 鹤山市| 河南省| 桐柏县| 宜阳县| 洪泽县| 沧州市| 湟源县| 若尔盖县| 红原县| 巴东县| 五寨县| 桑日县| 巴南区| 高碑店市| 永州市| 辽阳市| 济源市| 汉沽区| 安阳市| 汉源县| 萝北县| 金坛市| 从化市| 宜都市| 大竹县| 灵武市| 定日县|