如何用Three.js渲染到纹理

JavaScript026

如何用Three.js渲染到纹理,第1张

ImageUtils.loadTexture:从指定位置加载图片文件,文件格式可以是PNG,GIF或JPEG文件。

ImageUtils.loadTexture

2个很关键的值得注意的点:

这个方法是异步调用的,所幸的是使用了render循环,这样每秒能被渲染几十次,并不会影响渲染的效果

图片的长宽大小最好是2的次方256*256 512*512等。我曾看到如果使用不是类似这样的长宽,Three..js会将其压缩。

加载纹理的方法

通常,加载纹理可理解为加载图片,然后贴在材质上,一个常用的套路就是写一个函数,用来加载图片,然后返回网格,实例代码如下

function createMesh(geom, imageFile) {

var texture = THREE.ImageUtils.loadTexture(imageFile)

var mat = new THREE.MeshPhongMaterial()

mat.map = texture//材质的Map属性用于添加纹理

var mesh = new THREE.Mesh(geom, mat)

return mesh

}12345671234567

所以,如果给球体添加一个木质纹理属性,就会看起来像这个样子

项目中遇到一个问题,同一个图片在 dom 节点中使用了 <img>标签来加载,同时由于项目使用了 ThreeJS 3D 渲染引擎,在加载纹理时使用了 TextureLoader 来加载了同一张图片,而由于图片是在阿里云服务器上的,所以最后报出了跨域问题。 https://www.jianshu.com/p/8fa0fb53c183

1、看标识,一般假表最容易暴露的就是LOGO,特别是表面上的LOGO。你可以用4倍目镜仔细的看其做工。如果是金属LOGO真表一般光亮如新,假表LOGO边缘毛糙,并且有部分不太规则如果是漆字,真表边缘光滑无毛刺,假表漆字边缘稍有化开的痕迹,并且字 体有深浅,用8倍目镜可以看得更清楚。

2、看表镜,真表一般采用蓝宝石表镜,随着科技的进步,假表也开始一一效仿。    假表用蓝宝石表镜一般也很容易识破,因为假表为了减少成本不会在表镜上镀防反射层,更不要说双层镀膜了,所以在光线下反光严重,尽管滴水不化,但只需要拿紫外线灯光照射,反射极其严重;真表由于有防反射镀膜,在强光下无太大反射,并有紫色或蓝色的眩光。

3、看重量,现在假表会在假表里使用铅的圈保证假表的重量,但是试一下其其他部分的重量,比如表链部分,分量要相对轻得多。同时,一般假表都比较轻,即使使用了铅圈“压载”,但是在手里的感觉也是不太一样的。

4、看把头,假表的把头都会采用同一种工艺,抛光镀层部分不均匀,无论是镀克还是镀金,但总有深浅不同之处,另外,很多名表的把头都是有自己的规格的。

5、看后盖,假表的后盖都不按照名表的编制制作,有些将原来的旋盖做成了压盖,不妨注意一下。有部分的表后盖是八角的或几个螺丝后盖的,假表为了节约成本会制作出不伦不类的旋盖形状的压盖。

6、看字面,字面可用8倍目镜轻松发现手写的痕迹。

7、看编号,名表表厂都有自己固定的标号规则,并且有其个表的流水号,根据该号可以查到该表的规格型号甚至是出厂日期和销售地,而假表则只用一个编号,甚至于没有号码,很容易进行分辨。某些真表的编号是出现在表的不同位置的,而假的只在表后盖上出现。