List of usage examples for net.minecraftforge.client.model.pipeline LightUtil diffuseLight
public static float diffuseLight(float x, float y, float z)
From source file:blusunrize.immersiveengineering.client.models.IESmartObjModel.java
protected final void putVertexData(IVertexConsumer builder, Vertex v, Normal faceNormal, TextureCoordinate texCoord, TextureAtlasSprite sprite, float[] colour) { for (int e = 0; e < getFormat().getElementCount(); e++) { switch (getFormat().getElement(e).getUsage()) { case POSITION: builder.put(e, v.getPos().x, v.getPos().y, v.getPos().z, v.getPos().w); break; case COLOR: float d; if (v.hasNormal()) d = LightUtil.diffuseLight(v.getNormal().x, v.getNormal().y, v.getNormal().z); else/*w ww .j av a 2s. co m*/ d = LightUtil.diffuseLight(faceNormal.x, faceNormal.y, faceNormal.z); if (v.getMaterial() != null) builder.put(e, d * v.getMaterial().getColor().x * colour[0], d * v.getMaterial().getColor().y * colour[1], d * v.getMaterial().getColor().z * colour[2], v.getMaterial().getColor().w * colour[3]); else builder.put(e, d * colour[0], d * colour[1], d * colour[2], 1 * colour[3]); break; case UV: if (sprite == null)//Double Safety. I have no idea how it even happens, but it somehow did .-. sprite = Minecraft.getMinecraft().getTextureMapBlocks().getMissingSprite(); builder.put(e, sprite.getInterpolatedU(texCoord.u * 16), sprite.getInterpolatedV((texCoord.v) * 16), //v-flip used to be processed here but was moved because of shader layers 0, 1); break; case NORMAL: if (!v.hasNormal()) builder.put(e, faceNormal.x, faceNormal.y, faceNormal.z, 0); else builder.put(e, v.getNormal().x, v.getNormal().y, v.getNormal().z, 0); break; default: builder.put(e); } } }
From source file:blusunrize.immersiveengineering.client.models.ModelCoresample.java
protected final void putVertexData(Vector3f normal, Vector3f[] vertices, Vector2f[] uvs, TextureAtlasSprite sprite) {/*from www . j ava2s . com*/ UnpackedBakedQuad.Builder builder = new UnpackedBakedQuad.Builder(DefaultVertexFormats.ITEM); builder.setQuadOrientation(EnumFacing.getFacingFromVector(normal.x, normal.y, normal.z)); builder.setTexture(sprite); // builder.setQuadColored(); for (int i = 0; i < vertices.length; i++) { builder.put(0, vertices[i].x, vertices[i].y, vertices[i].z, 1);//Pos float d = LightUtil.diffuseLight(normal.x, normal.y, normal.z); builder.put(1, d, d, d, 1);//Colour builder.put(2, uvs[i].x, uvs[i].y, 0, 1);//UV builder.put(3, normal.x, normal.y, normal.z, 0);//Normal builder.put(4);//padding } bakedQuads.add(builder.build()); }