master
王宇洋 3 years ago
parent ff40387245
commit 4c13c10b88

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -4,6 +4,7 @@ import Scene.base.SceneObject;
import base.GraphicsObjects.Point4f;
import base.GraphicsObjects.Vector4f;
import base.objects3D.BunnyObjTest;
import org.newdawn.slick.Color;
import org.newdawn.slick.opengl.Texture;
import java.util.HashMap;
@ -35,6 +36,7 @@ public class BunnyTestObject extends SceneObject {
@Override
public void draw() {
// glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
Color.red.bind();
glCallList(bunnyObjTest.getBunnyDisplayList());
}
}

@ -43,10 +43,10 @@ public class Cube extends SceneObject {
Color.white.bind();
//bind texture
getTextures().get("default_dirt").bind();
GL11.glEnable(GL11.GL_TEXTURE_2D);
;
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST);
cube.DrawTexCube(1f);
GL11.glDisable(GL11.GL_TEXTURE_2D);
;
}
}

@ -1,5 +1,6 @@
package Scene.Objects;
import Scene.base.IDrawListener;
import base.GraphicsObjects.Point4f;
import base.GraphicsObjects.Vector4f;
import Scene.base.SceneObject;
@ -10,6 +11,8 @@ import org.newdawn.slick.opengl.Texture;
import java.util.HashMap;
import static org.lwjgl.opengl.GL11.glColor3f;
/**
* @Author: WangYuyang
* @Date: 2021/11/2-16:01
@ -35,19 +38,21 @@ public class Ground extends SceneObject {
@Override
public void draw() {
GL11.glEnable(GL11.GL_TEXTURE_2D);
;
GL11.glTexParameteri(
GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_T,
GL11.GL_REPEAT);
GL11.glTexParameteri(
GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_S,
GL11.GL_REPEAT);
Color.white.bind();
//bind texture
Color.white.bind();
getTextures().get("default_dirt").bind();
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST);
cube.DrawTexCube(10f);
GL11.glDisable(GL11.GL_TEXTURE_2D);
;
}
}

@ -193,12 +193,12 @@ public class Human extends SceneObject {
getTextures().get("wool_pink").bind();
//Enable TEXTURE
GL11.glEnable(GL11.GL_TEXTURE_2D);
//set texture Parameters
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST);
texSphere.DrawTexSphere(0.5f, 32, 32, getTextures().get("wool_pink"));
//Draw finish Disable TEXTURE
GL11.glDisable(GL11.GL_TEXTURE_2D);
// sphere.DrawSphere(0.5f, 32, 32); // pelvis sphere
@ -216,10 +216,10 @@ public class Human extends SceneObject {
//bind texture
getTextures().get("tnt_side").bind(); //set texture
//Enable TEXTURE
GL11.glEnable(GL11.GL_TEXTURE_2D);
;
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST);
texSphere.DrawTexSphere(0.5f, 32, 32, getTextures().get("tnt_side"));
GL11.glDisable(GL11.GL_TEXTURE_2D); //disable texture
; //disable texture
// sphere.DrawSphere(0.5f, 32, 32);// chest sphere
@ -249,10 +249,10 @@ public class Human extends SceneObject {
GL11.GL_REPEAT);
Color.white.bind();
getTextures().get("awesomeface").bind(); //set texture
GL11.glEnable(GL11.GL_TEXTURE_2D);
;
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST);
texSphere.DrawTexSphere(0.5f, 32, 32, getTextures().get("awesomeface"));
GL11.glDisable(GL11.GL_TEXTURE_2D);
;
// sphere.DrawSphere(0.5f, 32, 32);
@ -275,10 +275,10 @@ public class Human extends SceneObject {
GL11.GL_REPEAT);
Color.white.bind();
getTextures().get("default_stone").bind(); //set texture
GL11.glEnable(GL11.GL_TEXTURE_2D);
;
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST);
texSphere.DrawTexSphere(0.25f, 32, 32, getTextures().get("default_stone"));
GL11.glDisable(GL11.GL_TEXTURE_2D);
;
// sphere.DrawSphere(0.25f, 32, 32);
@ -309,10 +309,10 @@ public class Human extends SceneObject {
GL11.GL_REPEAT);
Color.white.bind();
getTextures().get("default_stone").bind();
GL11.glEnable(GL11.GL_TEXTURE_2D);
;
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST);
texSphere.DrawTexSphere(0.2f, 32, 32, getTextures().get("default_stone"));
GL11.glDisable(GL11.GL_TEXTURE_2D);
;
// sphere.DrawSphere(0.2f, 32, 32);
//left forearm
@ -336,10 +336,10 @@ public class Human extends SceneObject {
GL11.GL_REPEAT);
Color.white.bind();
getTextures().get("default_stone").bind();
GL11.glEnable(GL11.GL_TEXTURE_2D);
;
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST);
texSphere.DrawTexSphere(0.2f, 32, 32, getTextures().get("default_stone"));
GL11.glDisable(GL11.GL_TEXTURE_2D);
;
// sphere.DrawSphere(0.2f, 32, 32);
@ -368,10 +368,10 @@ public class Human extends SceneObject {
GL11.GL_REPEAT);
Color.white.bind();
getTextures().get("default_stone").bind();
GL11.glEnable(GL11.GL_TEXTURE_2D);
;
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST);
texSphere.DrawTexSphere(0.25f, 32, 32, getTextures().get("default_stone"));
GL11.glDisable(GL11.GL_TEXTURE_2D);
;
// sphere.DrawSphere(0.25f, 32, 32);
@ -402,10 +402,10 @@ public class Human extends SceneObject {
GL11.GL_REPEAT);
Color.white.bind();
getTextures().get("default_stone").bind();
GL11.glEnable(GL11.GL_TEXTURE_2D);
;
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST);
texSphere.DrawTexSphere(0.2f, 32, 32, getTextures().get("default_stone"));
GL11.glDisable(GL11.GL_TEXTURE_2D);
;
// sphere.DrawSphere(0.2f, 32, 32);
//right forearm
@ -429,10 +429,10 @@ public class Human extends SceneObject {
GL11.GL_REPEAT);
Color.white.bind();
getTextures().get("default_stone").bind();
GL11.glEnable(GL11.GL_TEXTURE_2D);
;
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST);
texSphere.DrawTexSphere(0.2f, 32, 32, getTextures().get("default_stone"));
GL11.glDisable(GL11.GL_TEXTURE_2D);
;
// sphere.DrawSphere(0.2f, 32, 32);
@ -468,10 +468,10 @@ public class Human extends SceneObject {
GL11.GL_REPEAT);
Color.white.bind();
getTextures().get("default_cobble").bind();
GL11.glEnable(GL11.GL_TEXTURE_2D);
;
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST);
texSphere.DrawTexSphere(0.25f, 32, 32, getTextures().get("default_cobble"));
GL11.glDisable(GL11.GL_TEXTURE_2D);
;
// sphere.DrawSphere(0.25f, 32, 32);
@ -501,10 +501,10 @@ public class Human extends SceneObject {
GL11.GL_REPEAT);
Color.white.bind();
getTextures().get("default_cobble").bind();
GL11.glEnable(GL11.GL_TEXTURE_2D);
;
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST);
texSphere.DrawTexSphere(0.25f, 32, 32, getTextures().get("default_cobble"));
GL11.glDisable(GL11.GL_TEXTURE_2D);
;
// sphere.DrawSphere(0.25f, 32, 32);
//left low leg
@ -528,10 +528,10 @@ public class Human extends SceneObject {
GL11.GL_REPEAT);
Color.white.bind();
getTextures().get("default_cobble").bind();
GL11.glEnable(GL11.GL_TEXTURE_2D);
;
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST);
texSphere.DrawTexSphere(0.3f, 32, 32, getTextures().get("default_cobble"));
GL11.glDisable(GL11.GL_TEXTURE_2D);
;
// sphere.DrawSphere(0.3f, 32, 32);
@ -558,10 +558,10 @@ public class Human extends SceneObject {
GL11.GL_REPEAT);
Color.white.bind();
getTextures().get("default_cobble").bind();
GL11.glEnable(GL11.GL_TEXTURE_2D);
;
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST);
texSphere.DrawTexSphere(0.25f, 32, 32, getTextures().get("default_cobble"));
GL11.glDisable(GL11.GL_TEXTURE_2D);
;
// sphere.DrawSphere(0.25f, 32, 32);
@ -592,10 +592,10 @@ public class Human extends SceneObject {
GL11.GL_REPEAT);
Color.white.bind();
getTextures().get("default_cobble").bind();
GL11.glEnable(GL11.GL_TEXTURE_2D);
;
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST);
texSphere.DrawTexSphere(0.25f, 32, 32, getTextures().get("default_cobble"));
GL11.glDisable(GL11.GL_TEXTURE_2D);
;
// sphere.DrawSphere(0.25f, 32, 32);
//right low leg
@ -619,10 +619,10 @@ public class Human extends SceneObject {
GL11.GL_REPEAT);
Color.white.bind();
getTextures().get("default_cobble").bind();
GL11.glEnable(GL11.GL_TEXTURE_2D);
;
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST);
texSphere.DrawTexSphere(0.3f, 32, 32, getTextures().get("default_cobble"));
GL11.glDisable(GL11.GL_TEXTURE_2D);
;
// sphere.DrawSphere(0.3f, 32, 32);
}

@ -32,7 +32,7 @@ public class LAVA_Door extends SceneObject {
Color.white.bind();
getTextures().get("default_lava").bind();
GL11.glEnable(GL11.GL_TEXTURE_2D);
;
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST);
GL11.glTranslatef(-2f, 0f, 0);
cube.DrawTexCube();
@ -108,6 +108,6 @@ public class LAVA_Door extends SceneObject {
}
GL11.glPopMatrix();
GL11.glDisable(GL11.GL_TEXTURE_2D);
;
}
}

@ -31,7 +31,7 @@ public class TNT_Door extends SceneObject {
@Override
public void draw() {
GL11.glEnable(GL11.GL_TEXTURE_2D);
;
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST);
Color.white.bind();
getTextures().get("tnt_side").bind();
@ -112,7 +112,7 @@ public class TNT_Door extends SceneObject {
}
GL11.glPopMatrix();
GL11.glPopMatrix();
GL11.glDisable(GL11.GL_TEXTURE_2D);
;
}
}

@ -44,11 +44,11 @@ public class Wall extends SceneObject {
GL11.GL_REPEAT);
Color.white.bind();
//bind texture
getTextures().get("default_dirt").bind();
GL11.glEnable(GL11.GL_TEXTURE_2D);
// getTextures().get("default_dirt").bind();
;
GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST);
MyGrid.DrawTexCube(10f);
GL11.glDisable(GL11.GL_TEXTURE_2D);
;
}
}

@ -50,13 +50,14 @@ public class Scene {
// textures
// ));
sceneManager.addSceneObject(new TNT_Door(
new Point4f(0, 50f, 200, 0),
new Point4f(0, 0, 0, 0),
new Vector4f(50f, 50f, 50f, 0),
textures
));
sceneManager.addSceneObject(new LAVA_Door(
new Point4f(0, 50f, 200, 0),
new Point4f(0, 0, 0, 0),
@ -64,9 +65,8 @@ public class Scene {
textures
));
// sceneManager.addSceneObject(new Cube(
// new Point4f(300, 200, 600, 0),
// sceneManager.addSceneObject(new TestObj(
// new Point4f(300, 200, -600, 0),
// new Point4f(0, 0, 0, 0),
// new Vector4f(50, 50, 50, 0),
// textures

@ -69,10 +69,10 @@ public abstract class SceneObject implements IDrawable, IMovable, IScalable {
public void draw(IDrawListener listener) {
//move object to correct position
listener.beforeEachDraw(this);
// glDisable(GL_TEXTURE_GEN_S);
// glDisable(GL_TEXTURE_GEN_T);
// glDisable(GL_TEXTURE_GEN_R);
// glDisable(GL_TEXTURE_GEN_Q);
glDisable(GL_TEXTURE_GEN_S);
glDisable(GL_TEXTURE_GEN_T);
glDisable(GL_TEXTURE_GEN_R);
glDisable(GL_TEXTURE_GEN_Q);
GL11.glTranslatef(origin.x, origin.y, origin.z);
GL11.glRotatef(rotation.a, rotation.x, rotation.y, rotation.z);
@ -81,10 +81,10 @@ public abstract class SceneObject implements IDrawable, IMovable, IScalable {
this.draw();
listener.afterEachDraw(this);
// glEnable(GL_TEXTURE_GEN_S);
// glEnable(GL_TEXTURE_GEN_T);
// glEnable(GL_TEXTURE_GEN_R);
// glEnable(GL_TEXTURE_GEN_Q);
glEnable(GL_TEXTURE_GEN_S);
glEnable(GL_TEXTURE_GEN_T);
glEnable(GL_TEXTURE_GEN_R);
glEnable(GL_TEXTURE_GEN_Q);
}
@ -133,4 +133,8 @@ public abstract class SceneObject implements IDrawable, IMovable, IScalable {
public Vector4f getScale() {
return scale;
}
public Vector4f getRotation() {
return rotation;
}
}

@ -44,7 +44,7 @@ public class Skybox extends SceneObject {
@Override
public void draw() {
GL11.glEnable(GL11.GL_TEXTURE_2D);
// ;
GL11.glTexParameteri(
GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_T,
GL11.GL_REPEAT);
@ -128,6 +128,6 @@ public class Skybox extends SceneObject {
GL11.glEnd();
GL11.glDisable(GL11.GL_TEXTURE_2D);
;
}
}

@ -229,7 +229,7 @@ public class Engine {
* be no object farther away than 50 units from [0, 0, 0] in any direction.
* If an object exceeds the radius, the object may cast shadows wrongly.
*/
float sceneBoundingRadius = 800;
float sceneBoundingRadius = 1500;
/**
* The distance from the light to the scene, assuming that the scene is located
* at [0, 0, 0]. Using the Pythagorean theorem, the distance is calculated by taking the square-root of the
@ -304,6 +304,7 @@ public class Engine {
* int border -> 0
*/
glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, 0, 0, shadowMapWidth, shadowMapHeight, 0);
// Restore the previous model-view matrix.
glPopMatrix();
glMatrixMode(GL_PROJECTION);
@ -439,15 +440,17 @@ public class Engine {
updateFPS();
checkInput();
glPushAttrib(GL_ALL_ATTRIB_BITS);
{
generateTextureCoordinates();
renderProgram.renderBackground(delta);
renderProgram.renderScene(delta);
drawShadowMap(renderProgram);
renderProgram.renderBackground(delta);
// glPushAttrib(GL_ALL_ATTRIB_BITS);
// {
// generateTextureCoordinates();
// drawShadowMap(renderProgram);
//
// }
// glPopAttrib();
}
glPopAttrib();
Display.update();
Display.sync(FPS);

@ -512,7 +512,7 @@ public class MainWindow {
//
// Color.white.bind();
// texture.bind();
// GL11.glEnable(GL11.GL_TEXTURE_2D);
// ;
// GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_MAG_FILTER, GL11.GL_NEAREST);
// GL11.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
//

Loading…
Cancel
Save