html - 使用 css sprites 在 three.js 中加载纹理

标签 html css three.js

我正在使用

var texture1 = THREE.ImageUtils.loadTexture("image1.jpg"); to map this texture to a material.

我的问题是我可以通过 css 加载纹理,因为我想通过 css sprites 加载图像。我需要为每个纹理提供背景位置,如果我通过 html 加载纹理,这是不可能的。 我需要使用 background : url() 属性。

请告诉我怎么做

最佳答案

这里要注意的是,您的整个 Three.js 场景都在 HTML Canvas 上呈现。那就是说您现在存在于一个纯粹基于 GDI 的环境中。我现在能为您看到的唯一解决方案是重新映射您的 Material 纹理,调用指向新“2d” Canvas 上下文的更新。像这样:

var spriteCanvas = document.createElement( "canvas" );
var spriteContext = spriteCanvas.getContext( "2d" );
var spriteImage = document.getElementById( "hidden_spriteDiv_with_background_url" );
spriteContext.drawImage( spriteImage, 0, 0 );

var texture1 = new THREE.Texture( spriteContext );
texture1.needsUpdate = true;

然后将新的纹理贴图“texture1”分配给您的 Material ,并调用适用的更新。希望至少能让您入门。

关于html - 使用 css sprites 在 three.js 中加载纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18360538/

相关文章:

javascript - 如何使用jspdf生成完整的pdf?

html - Javascript/HTML 横幅不工作

javascript - Three.JS 错误 - 纹理不是二的幂/无法更改纹理

chrome 上的 Jquery .css 问题

three.js - webgl 透明度在某些计算机上不起作用,为什么?

three.js - 仅在 Hover Three.js 上更改颜色

javascript - 如何限制图片上传的大小?如果超过限制大小则显示消息?

html - 使用 css 垂直对齐文本

html - 鼠标悬停时更改 SVG 剪贴蒙版的大小

html - 当菜单有垂直滚动条时显示菜单项外的子菜单