⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ms3dmaterial.java

📁 NeHe用java与OpenGL结合教程源码
💻 JAVA
字号:
package demos.nehe.lesson31;

import java.io.DataInput;
import java.io.IOException;

/**
 * A Milshape 3D Material
 *
 * @author Nikolaj Ougaard
 */
class MS3DMaterial {
    public String name;
    public float[] ambient = new float[4];
    public float[] diffuse = new float[4];
    public float[] specular = new float[4];
    public float[] emissive = new float[4];
    public float shininess;                             // 0.0f - 128.0f
    public float transparency;                          // 0.0f - 1.0f
    public int mode;                                    // 0, 1, 2 is unused now
    public String textureName;                          // texture.bmp
    public String alphamapName;                         // alpha.bmp

    public int textureId;                               //The only variable not from the spec. Used internally in JOGL to represent a texture

    /**
     * This method creates a new MS3DMaterial.
     * Note: Only textures of image type gif, jpg and bmp are supported
     */
    public static MS3DMaterial decodeMS3DMaterial(DataInput input) throws IOException {
        MS3DMaterial m = new MS3DMaterial();
        m.name = MS3DModel.decodeZeroTerminatedString(input, 32);
        m.ambient[0] = input.readFloat();
        m.ambient[1] = input.readFloat();
        m.ambient[2] = input.readFloat();
        m.ambient[3] = input.readFloat();
        m.diffuse[0] = input.readFloat();
        m.diffuse[1] = input.readFloat();
        m.diffuse[2] = input.readFloat();
        m.diffuse[3] = input.readFloat();
        m.specular[0] = input.readFloat();
        m.specular[1] = input.readFloat();
        m.specular[2] = input.readFloat();
        m.specular[3] = input.readFloat();
        m.emissive[0] = input.readFloat();
        m.emissive[1] = input.readFloat();
        m.emissive[2] = input.readFloat();
        m.emissive[3] = input.readFloat();
        m.shininess = input.readFloat();
        m.transparency = input.readFloat();
        m.mode = input.readUnsignedByte();
        m.textureName = MS3DModel.decodeZeroTerminatedString(input, 128).replace('\\', '/');
        m.alphamapName = MS3DModel.decodeZeroTerminatedString(input, 128).replace('\\', '/');
        return m;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -