three.js-地球贴图-TextureLoader
纹理贴图
<!DOCTYPE html> <html lang="en"> <head> <title>three.js webgl - cameras</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0"> <!-- <link type="text/css" rel="stylesheet" href="main.css"> --> <style> body{ padding: 0px; margin: 0px; font-size: 0px; } a { color: #08f; } b { color: lightgreen; } </style> </head> <body> <div id="info"></div> </body> <script type="module"> import * as THREE from './js/three.module.js'; import Stats from './js/stats.module.js'; var SCREEN_WIDTH = window.innerWidth; var SCREEN_HEIGHT = window.innerHeight; var aspect = SCREEN_WIDTH / SCREEN_HEIGHT; var camera, scene, renderer; var container = document.getElementById('info'); var pointLight,particles,mesh; init(); function init() { sceneInit(); cameraInit(); initCube(); renderInit(); animate(); } function sceneInit(){ scene = new THREE.Scene(); } function initCube(){var texturePainting = new THREE.TextureLoader().load( './image/earth.jpg' ); var materialPainting = new THREE.MeshBasicMaterial( { color: 0xffffff, map: texturePainting } ); mesh = new THREE.Mesh( new THREE.SphereBufferGeometry( 100, 42, 42 ), materialPainting // new THREE.MeshNormalMaterial( { flatShading: true } ) ); mesh.position.z = 1600; scene.add( mesh ); } function cameraInit(){ camera = new THREE.PerspectiveCamera( 50, aspect, 1, 10000 ); camera.position.z = 2500; scene.add( camera ); } function renderInit(){ renderer = new THREE.WebGLRenderer( { antialias: true } ); renderer.setSize( SCREEN_WIDTH, SCREEN_HEIGHT ); renderer.render( scene, camera ); renderer.setClearColor(0xffffff); // renderer.clear(); container.appendChild( renderer.domElement ); } function animate() { requestAnimationFrame( animate ); render(); } function render(){ mesh.rotation.x += 0.001; mesh.rotation.y -= 0.005; renderer.clear(); renderer.render( scene, camera ); } </script> </html>
'./js/three.module.js'
直接从官网的example里面下载下来就行了。
文档: https://threejs.org/docs/index.html#api/en/loaders/TextureLoader
var texturePainting = new THREE.TextureLoader().load( './image/earth.jpg' ); var materialPainting = new THREE.MeshBasicMaterial( { color: 0xffffff, map: texturePainting } ); //基础材质
//上面两行是贴图材质的写法 mesh = new THREE.Mesh( new THREE.SphereBufferGeometry( 100, 42, 42 ), materialPainting );
官方文档的demo还有一个异步的加载
var texture = new THREE.TextureLoader().load( 'textures/land_ocean_ice_cloud_2048.jpg' ); // immediately use the texture for material creation var material = new THREE.MeshBasicMaterial( { map: texture } );
网上找的图片
分类:
three.js
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~