Reputation: 129
I'm currently working on something along the lines of a plugin for another program to add 3D capability to it, so I'm trying to put all the functionality i can from three.js into it, with the added goal of this being a good way to learn all the functionality of three.js firsthand.
I'm running into an issue now as i implement textures and materials that with mesh basic material, setting some things which the documentation on the main threejs.org site shows are features, doesn't actually do anything.
when i set a texture for either specularmap or lightmap nothing is actually showing up. Im pretty sure its not a mistake im making because setting the texture of the map works, but trying to set this same texture for the specularMap or lightMap is doing nothing. Does a regular texture work for these, or do i have to do something different?
I'd also like to know what the shading property does for mesh basic, because as far as i can see setting it to smoothshading/flatshading/noshading is doing nothing aswell.
Upvotes: 0
Views: 1170
Reputation: 104833
MeshBasicMaterial
does not respond to lights. Change your material to MeshLamberMaterial
or MeshPhongMaterial
, for example.
For MeshBasicMaterial
and MeshLambertMaterial
, the specularMap
is used only to modulate the reflection when an environment map is used.
For any material, lightmaps require a second set of UVs. geometry.faceVertexUvs[ 0 ]
contains the usual set of UVs; for a lightmap, you need to add geometry.faceVertexUvs[ 1 ]
, a second set of UVs.
For MeshBasicMaterial
, the shading
property only applies when an environment map is used. SmoothShading
will yield smooth reflections; FlatShading
will yield faceted reflections.
three.js r.66
Upvotes: 2