前端vue2 使用three.js 创建的 3D 场景,为什么部署之后图片颜色不正常
第一张是部署在服务器上的展示样式截图,第二张是本地展示样式截图
打包之后在dist查看static 里面的图片是正常的,没有问题
背景是通过three 场景添加的背景图
// 创建场景 setScene() { // 创建场景对象Scene this.scene = new THREE.Scene() // 加载背景图片 var texture = new THREE.TextureLoader().load(require('@/assets/screen/backGround_big.png')) // 纹理对象Texture赋值给场景对象的背景属性.background this.scene.background = texture },
部署之后F12中 ele中dom结构并没有异常,没有什么多余蒙版遮住。
中间是一个地图,地图加载代码已经注释并不会影响three场景,
地图展示是另一个问题,https://segmentfault.com/q/1010000044486266
依赖包的问题,
我在前期开发时候由于网不好下载不下来依赖包,就从别的博主项目里面复制的依赖包,但是没有复制 package。json文件。我本地的 是159版本,但是实际的包确实140的包。因此有这问题出现
正确版本 "three": "^0.140.2",
这个问题可能是由于图片的路径或者加载方式引起的。在你的代码中,你是使用 THREE.TextureLoader().load()
方法来加载图片的。这个方法会返回一个 Promise,你需要等待这个 Promise 完成,图片才能被正确加载。如果服务器上的图片路径和本地图片路径不同,或者服务器上图片的加载有延迟,都可能导致图片颜色显示异常。
另一个可能的原因是,你的 Vue 应用可能没有正确处理跨域请求。如果你的服务器不允许跨域请求,那么你的图片可能无法正确加载。你需要检查你的服务器设置,确保它允许跨域请求。
此外,你可能需要检查你的打包配置。如果你的静态资源(包括你的图片)在打包后被错误地处理或放置,那么也可能导致颜色显示异常。你应该检查你的 Vue.config.js 文件(如果你有的话),或者你的 webpack 配置,确保你的静态资源被正确处理和放置。
你可以尝试以下的解决方案:
then()
方法来处理 TextureLoader().load()
的 Promise,确保图片加载完成后再进行渲染。像这样:
setScene() { // 创建场景对象Scene this.scene = new THREE.Scene(); // 加载背景图片 var texture = new THREE.TextureLoader().load(require('@/assets/screen/backGround_big.png')); // 使用 then() 方法处理 Promise texture.then(texture => { // 纹理对象Texture赋值给场景对象的背景属性.background this.scene.background = texture; });},
vue项目打包部署之后本地json为什么访问不到? 使用three.js画了个中国地图,本人小白也是看大佬源码改的代码。 界面展示是正常的 但是发布之后就直接不展示地图,中间区域是没有地图元素的,并且颜色展示不正常 颜色不正常是我的另一个问题, https://segmentfault.com/q/1010000044485869 打包之后dist文件下面是有 正常的json文件的 config配
动态获取assets路径下的图片出现显示一半的情况,有时候会出现这种情况
配置如下: 按道理第三个点应该显示对应的黄色,但这里却不显示颜色。我把两处的汉字"失控"改成数字1就可以正常显示了,这是为什么呢?
本文向大家介绍JavaScript获取图片像素颜色并转换为box-shadow显示,包括了JavaScript获取图片像素颜色并转换为box-shadow显示的使用技巧和注意事项,需要的朋友参考一下 一、原理: 1.使用HTML5的FileReader API读取图片 FileReader文件读物器,用于读取客户端文件到,注意,文件读取完毕后并不会载入缓存 eg: 2.使用HTML5 canvas
我正在使用 LWJGL(适用于 Java 的开放GL)库进行纹理映射。以下是从文件中读取图像的代码: 以字节数组形式获取数据栅格(图像像素)的代码: 现在,创建“bytePixels”数组并将其放入字节缓冲区的代码: 这里用于将所有这些绑定到缓冲区: 问题是,图像纹理的颜色与原始图像颜色不同! 原始图片: 纹理图像: 这个答案OpenGL渲染纹理与原始图像颜色不同?,不能解决这个问题,因为在lwj
scatter3D散点图里面的图片会被其他颜色覆盖,无法显示自己的颜色,请问大佬们有遇到过这种问题吗 在网上查询过很多办法都不顶用