Example usage for net.minecraftforge.client.model.pipeline LightUtil diffuseLight

List of usage examples for net.minecraftforge.client.model.pipeline LightUtil diffuseLight

Introduction

In this page you can find the example usage for net.minecraftforge.client.model.pipeline LightUtil diffuseLight.

Prototype

public static float diffuseLight(float x, float y, float z) 

Source Link

Usage

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());
}