Search in sources :

Example 1 with IntModelBuilder

use of gaiasky.util.gdx.IntModelBuilder in project gaiasky by langurmonkey.

the class StarCluster method initModel.

public void initModel() {
    if (clusterTex == null) {
        clusterTex = new Texture(Settings.settings.data.dataFileHandle("data/tex/base/cluster-tex.png"), true);
        clusterTex.setFilter(TextureFilter.MipMapLinearNearest, TextureFilter.Linear);
    }
    if (model == null) {
        Material mat = new Material(new BlendingAttribute(GL20.GL_ONE, GL20.GL_ONE), new ColorAttribute(ColorAttribute.Diffuse, cc[0], cc[1], cc[2], cc[3]));
        IntModelBuilder modelBuilder = ModelCache.cache.mb;
        modelBuilder.begin();
        // create part
        IntMeshPartBuilder bPartBuilder = modelBuilder.part("sph", GL20.GL_LINES, Bits.indexes(Usage.Position), mat);
        bPartBuilder.icosphere(1, 3, false, true);
        model = (modelBuilder.end());
        modelTransform = new Matrix4();
    }
    mc = new ModelComponent(false);
    mc.initialize(null);
    DirectionalLight dLight = new DirectionalLight();
    dLight.set(1, 1, 1, 1, 1, 1);
    mc.env = new Environment();
    mc.env.add(dLight);
    mc.env.set(new ColorAttribute(ColorAttribute.AmbientLight, 1.0f, 1.0f, 1.0f, 1f));
    mc.env.set(new FloatAttribute(FloatAttribute.Shininess, 0.2f));
    mc.instance = new IntModelInstance(model, modelTransform);
    // Relativistic effects
    if (Settings.settings.runtime.relativisticAberration)
        mc.rec.setUpRelativisticEffectsMaterial(mc.instance.materials);
    // Gravitational waves
    if (Settings.settings.runtime.gravitationalWaves)
        mc.rec.setUpGravitationalWavesMaterial(mc.instance.materials);
}
Also used : IntModelBuilder(gaiasky.util.gdx.IntModelBuilder) IntModelInstance(gaiasky.util.gdx.model.IntModelInstance) BlendingAttribute(gaiasky.util.gdx.shader.attribute.BlendingAttribute) ModelComponent(gaiasky.scenegraph.component.ModelComponent) DirectionalLight(com.badlogic.gdx.graphics.g3d.environment.DirectionalLight) Environment(gaiasky.util.gdx.shader.Environment) Material(gaiasky.util.gdx.shader.Material) FloatAttribute(gaiasky.util.gdx.shader.attribute.FloatAttribute) ColorAttribute(gaiasky.util.gdx.shader.attribute.ColorAttribute) IntMeshPartBuilder(gaiasky.util.gdx.IntMeshPartBuilder) Texture(com.badlogic.gdx.graphics.Texture) Matrix4(com.badlogic.gdx.math.Matrix4)

Example 2 with IntModelBuilder

use of gaiasky.util.gdx.IntModelBuilder in project gaiasky by langurmonkey.

the class SpacecraftGui method doneLoading.

/**
 * Constructs the interface
 */
public void doneLoading(AssetManager assetManager) {
    aiTexture = assetManager.get(Settings.settings.data.dataFile("tex/base/attitudeindicator.png"), Texture.class);
    aiTexture.setFilter(TextureFilter.Linear, TextureFilter.Linear);
    aiPointerTexture = assetManager.get("img/ai-pointer.png", Texture.class);
    aiPointerTexture.setFilter(TextureFilter.Linear, TextureFilter.Linear);
    aiVelTex = assetManager.get("img/ai-vel.png", Texture.class);
    aiVelTex.setFilter(TextureFilter.Linear, TextureFilter.Linear);
    aiAntivelTex = assetManager.get("img/ai-antivel.png", Texture.class);
    aiAntivelTex.setFilter(TextureFilter.Linear, TextureFilter.Linear);
    aiVelDec = Decal.newDecal(new TextureRegion(aiVelTex));
    aiAntivelDec = Decal.newDecal(new TextureRegion(aiAntivelTex));
    Material mat = new Material(new TextureAttribute(TextureAttribute.Diffuse, aiTexture), new ColorAttribute(ColorAttribute.Specular, 0.3f, 0.3f, 0.3f, 1f), new DepthTestAttribute(GL20.GL_LESS, aiCam.near, aiCam.far, true));
    aiModel = new IntModelBuilder().createSphere(1.6f, 30, 30, false, mat, Bits.indexes(Usage.Position, Usage.Normal, Usage.Tangent, Usage.BiNormal, Usage.TextureCoordinates));
    aiTransform = new Matrix4();
    aiModelInstance = new IntModelInstance(aiModel, aiTransform);
    aiViewport = new ExtendViewport(indicatorw * Settings.settings.program.ui.scale, indicatorh * Settings.settings.program.ui.scale, aiCam);
    buildGui();
    EventManager.instance.subscribe(this, gaiasky.event.Event.SPACECRAFT_STABILISE_CMD, gaiasky.event.Event.SPACECRAFT_STOP_CMD, gaiasky.event.Event.SPACECRAFT_INFO, gaiasky.event.Event.SPACECRAFT_NEAREST_INFO, gaiasky.event.Event.SPACECRAFT_THRUST_INFO);
    EventManager.instance.unsubscribe(this, gaiasky.event.Event.SPACECRAFT_LOADED);
}
Also used : TextureRegion(com.badlogic.gdx.graphics.g2d.TextureRegion) IntModelBuilder(gaiasky.util.gdx.IntModelBuilder) IntModelInstance(gaiasky.util.gdx.model.IntModelInstance) ExtendViewport(com.badlogic.gdx.utils.viewport.ExtendViewport) Material(gaiasky.util.gdx.shader.Material) DepthTestAttribute(gaiasky.util.gdx.shader.attribute.DepthTestAttribute) ColorAttribute(gaiasky.util.gdx.shader.attribute.ColorAttribute) Texture(com.badlogic.gdx.graphics.Texture) Matrix4(com.badlogic.gdx.math.Matrix4) TextureAttribute(gaiasky.util.gdx.shader.attribute.TextureAttribute)

Aggregations

Texture (com.badlogic.gdx.graphics.Texture)2 Matrix4 (com.badlogic.gdx.math.Matrix4)2 IntModelBuilder (gaiasky.util.gdx.IntModelBuilder)2 IntModelInstance (gaiasky.util.gdx.model.IntModelInstance)2 Material (gaiasky.util.gdx.shader.Material)2 ColorAttribute (gaiasky.util.gdx.shader.attribute.ColorAttribute)2 TextureRegion (com.badlogic.gdx.graphics.g2d.TextureRegion)1 DirectionalLight (com.badlogic.gdx.graphics.g3d.environment.DirectionalLight)1 ExtendViewport (com.badlogic.gdx.utils.viewport.ExtendViewport)1 ModelComponent (gaiasky.scenegraph.component.ModelComponent)1 IntMeshPartBuilder (gaiasky.util.gdx.IntMeshPartBuilder)1 Environment (gaiasky.util.gdx.shader.Environment)1 BlendingAttribute (gaiasky.util.gdx.shader.attribute.BlendingAttribute)1 DepthTestAttribute (gaiasky.util.gdx.shader.attribute.DepthTestAttribute)1 FloatAttribute (gaiasky.util.gdx.shader.attribute.FloatAttribute)1 TextureAttribute (gaiasky.util.gdx.shader.attribute.TextureAttribute)1