Three.js 浮雕图像教程
浮雕图像 ·Relief Image· ▶ 在线运行案例案例合集三维可视化功能案例threehub.cn开源仓库github地址https://github.com/z2586300277/three-cesium-examples400个案例代码:网盘链接你将学到什么ShaderMaterial 自定义着色器实现核心视觉效果OrbitControls 相机轨道交互requestAnimationFrame渲染循环与resize自适应效果说明本案例演示浮雕图像效果基于 WebGL 实现「浮雕图像」可视化效果附完整可运行源码核心用到 ShaderMaterial、OrbitControls。建议先打开文首在线案例查看动态画面再对照下方源码逐步理解。核心概念Scene / Camera / WebGLRenderer构成最小渲染闭环大场景可开logarithmicDepthBuffer缓解 Z-fighting。ShaderMaterial通过uniforms 自定义 GLSL 控制逐像素/逐点效果透明粒子常配合depthTest: false。OrbitControls提供轨道旋转/缩放开启enableDamping后需在 animate 中controls.update()。实现步骤搭建 Scene、PerspectiveCamera、WebGLRenderer挂载 canvas 并处理resize定义 uniforms / onBeforeCompile 或 ShaderMaterial编写 GLSL 与材质参数创建 OrbitControls及 Raycaster 等交互控件若源码包含在requestAnimationFrame循环中更新状态并 renderCesium 为viewer.render或自动渲染代码要点import * as THREE from three;import { GUI } from three/addons/libs/lil-gui.module.min.js; import { OrbitControls } from three/addons/controls/OrbitControls.js; import Stats from three/addons/libs/stats.module.js;var container; var scene, camera, renderer; var controls; var stats;var cubeMaterial;init(); update(); createGUI();function init() { container document.getElementById(box);// scene scene new THREE.Scene();// camera camera new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 10000); camera.position.set(1, 1, 1); camera.target new THREE.Vector3(0, 0, 0); scene.add(camera);// renderer renderer new THREE.WebGLRenderer({ antialias: true }); renderer.setSize(window.innerWidth, window.innerHeight); renderer.setPixelRatio(window.devicePixelRatio); container.appendChild(renderer.domElement);controls new OrbitControls(camera, renderer.domElement); controls.enableDamping true; controls.minDistance 2; controls.maxDistance 10; stats new Stats(); document.body.appendChild(stats.dom);// light initLight();// model initModel();// event window.addEventListener(resize, onWindowResize, false); }function initLight() { var light new THREE.DirectionalLight(0xffffff); light.position.set(0, 200, 100); scene.add(light); }// model function initModel() { const cubeShader { uniforms: { tDiffuse: { type: t, value: new THREE.TextureLoader().load(FILE_HOST threeExamples/shader/dlam.jpg) }, fScale: { type: float, value: 100.00 }, }, vertexShader:varying vec2 vUv; void main(){ vUv uv; gl_Position projectionMatrixmodelViewMatrixvec4(position, 1.0); }, fragmentShader:varying vec2 vUv; uniform sampler2D tDiffuse; uniform float fScale; const highp vec3 W vec3(0.2125, 0.7154, 0.0721); const vec4 bkColor vec4(0.5, 0.5, 0.5, 1.0); void main() { vec2 upLeftUV vec2(vUv.x-1.0/fScale, vUv.y-1.0/fScale); vec4 curColor texture2D(tDiffuse, vUv); vec4 upLeftColor texture2D(tDiffuse, upLeftUV); vec4 delColor curColor - upLeftColor; float luminance dot(delColor.rgb, W); gl_FragColor vec4(vec3(luminance), 0.0) bkColor; }, } cubeMaterial new THREE.ShaderMaterial({ uniforms: cubeShader.uniforms, vertexShader: cubeShader.vertexShader, fragmentShader: cubeShader.fragmentShader, side: THREE.DoubleSide });var geometry new THREE.PlaneGeometry(); var cube new THREE.Mesh(geometry, cubeMaterial); scene.add(cube); }function update() { requestAnimationFrame(update); renderer.render(scene, camera);controls.update(); stats.update(); }function onWindowResize() { var w window.innerWidth; var h window.innerHeight; camera.aspect w / h; camera.updateProjectionMatrix();renderer.setSize(w, h); }function createGUI() { var gui new GUI(); gui.add(cubeMaterial.uniforms[fScale], value, 50.0, 500.0).step(1.0).name(fScale); }完整源码GitHub小结本文提供浮雕图像完整 Three.js 源码与在线 Demo建议先运行案例再改 uniform/参数做二次实验更多 Three.js 实战案例见 three-cesium-examples 合集 与 GitHub 开源仓库

相关新闻

从零构建接口自动化测试体系:RestAssured+TestNG实战指南

从零构建接口自动化测试体系:RestAssured+TestNG实战指南

1. 项目概述:为什么接口自动化测试是每个测试工程师的必修课?干了这么多年测试,我越来越觉得,接口自动化测试已经不是“加分项”,而是“基本功”了。尤其是在当前微服务、前后端分离架构大行其道的背景下,系…

2026/7/26 15:04:56 阅读更多 →
智能论文写作平台:从选题到答辩的全流程优化

智能论文写作平台:从选题到答辩的全流程优化

1. 项目背景与痛点解析 本科毕业论文写作是每个大学生必须经历的重要学术训练环节,但传统写作模式存在诸多痛点。我在指导学弟学妹论文时发现,90%的学生会遇到以下典型问题:文献检索效率低下导致开题困难、论文结构逻辑混乱、格式规范反复修改…

2026/7/26 15:03:55 阅读更多 →
HunterPie:怪物猎人世界游戏数据覆盖工具的完整指南

HunterPie:怪物猎人世界游戏数据覆盖工具的完整指南

HunterPie:怪物猎人世界游戏数据覆盖工具的完整指南 【免费下载链接】HunterPie-legacy A complete, modern and clean overlay with Discord Rich Presence integration for Monster Hunter: World. 项目地址: https://gitcode.com/gh_mirrors/hu/HunterPie-lega…

2026/7/26 15:03:55 阅读更多 →

最新新闻

如何用OpenRGB统一控制所有RGB设备:跨平台开源解决方案终极指南

如何用OpenRGB统一控制所有RGB设备:跨平台开源解决方案终极指南

如何用OpenRGB统一控制所有RGB设备:跨平台开源解决方案终极指南 【免费下载链接】OpenRGB Open source RGB lighting control that doesnt depend on manufacturer software. Supports Windows, Linux, MacOS. Mirror of https://gitlab.com/CalcProgrammer1/OpenRG…

2026/7/26 15:19:01 阅读更多 →
Jasmine漫画浏览器:5大平台漫画阅读终极指南

Jasmine漫画浏览器:5大平台漫画阅读终极指南

Jasmine漫画浏览器:5大平台漫画阅读终极指南 【免费下载链接】jasmine A comic browser,support Android / iOS / MacOS / Windows / Linux. 项目地址: https://gitcode.com/gh_mirrors/jas/jasmine Jasmine漫画浏览器是一款强大的跨平台漫画阅读…

2026/7/26 15:19:01 阅读更多 →
OMAP-L137 EMIFB接口SDRAM配置与PCB设计实战指南

OMAP-L137 EMIFB接口SDRAM配置与PCB设计实战指南

1. 项目概述与EMIFB接口核心价值在嵌入式系统开发,尤其是基于TI OMAP-L137这类高性能异构处理器的项目中,外部存储器接口(External Memory Interface, EMIF)的设计往往是决定系统性能上限和稳定性的关键一环。它不仅仅…

2026/7/26 15:19:01 阅读更多 →
全面解剖分割实战指南:TotalSegmentator在医学影像AI中的深度应用

全面解剖分割实战指南:TotalSegmentator在医学影像AI中的深度应用

全面解剖分割实战指南:TotalSegmentator在医学影像AI中的深度应用 【免费下载链接】TotalSegmentator Tool for robust segmentation of >100 important anatomical structures in CT and MR images 项目地址: https://gitcode.com/gh_mirrors/to/TotalSegment…

2026/7/26 15:19:01 阅读更多 →
终极NCM转换神器:5分钟解锁网易云音乐加密文件的完整指南

终极NCM转换神器:5分钟解锁网易云音乐加密文件的完整指南

终极NCM转换神器:5分钟解锁网易云音乐加密文件的完整指南 【免费下载链接】ncmppGui 一个使用C编写的极速ncm转换GUI工具 项目地址: https://gitcode.com/gh_mirrors/nc/ncmppGui 你是否曾为网易云音乐的NCM加密格式而烦恼?想要将这些受保护的音乐…

2026/7/26 15:19:01 阅读更多 →
数据资产披露:23年演进与数字化转型关键指标

数据资产披露:23年演进与数字化转型关键指标

1. 项目背景与核心价值 数据资产信息披露这个概念最早可以追溯到上世纪90年代末的企业财务报告数字化浪潮。随着2000年后互联网技术在企业端的普及应用,越来越多的组织开始有意识地将数据作为战略资产进行管理和披露。这个项目系统性地整理了2000-2023年间全球主要行…

2026/7/26 15:18:01 阅读更多 →

日新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/26 0:00:31 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/26 0:00:31 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/26 0:00:31 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/26 0:00:31 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/26 0:00:31 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/26 0:00:31 阅读更多 →

月新闻