Java-Gaming.org
Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars!
Featured games (78)
games approved by the League of Dukes
Games in Showcase (408)
games submitted by our members
Games in WIP (293)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Fog  (Read 411 times)
0 Members and 1 Guest are viewing this topic.
Offline Hazzy

Senior Newbie





Fog
« Posted 2012-12-20 17:54:26 »

I'm thinking about trying to create fog for my game but I'm not sure how to go about it.
It's only a 2D game that I'm experimenting with and so far I've been looking into OpenGL Fog but I haven't been able to get that working just yet.

I basically followed this tutorial: http://www.swiftless.com/tutorials/opengl/fog.html just I'm unsure how to get that to work with 2D alongside SpriteBatches (Using LibGDX) and things.

Example of how I'm currently trying to achieve this:
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
public void drawFog(){
      float fogDensity = 0.3f;
      float fogColour[] = {0.5f, 0.5f, 0.5f, 1f};
      gl.glEnable (gl.GL_DEPTH_TEST);
      gl.glEnable(gl.GL_FOG);
      gl.glFogf(gl.GL_FOG_MODE, gl.GL_EXP2);
      gl.glFogfv(gl.GL_FOG_COLOR, fogColour, 0);
      gl.glFogf(gl.GL_FOG_DENSITY, fogDensity);
      gl.glHint(gl.GL_FOG_HINT, gl.GL_NICEST);
      gl.glLoadIdentity();
   }


1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
public void render(float delta){

      gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
      gl.glClearColor(0f, 0f, 0f, 1f);
     
      gl.glViewport((int) glViewport.x, (int) glViewport.y, (int) glViewport.width, (int) glViewport.height);
      cam.update();
      originalCamera.update();
      batch.setProjectionMatrix(relProjection());
       
      drawFog();
     
      batch.begin();
     
      for(int i = 0; i < entities.size(); i++){
         entities.get(i).draw(batch);
      }
     
      batch.end();
   }
Offline davedes
« Reply #1 - Posted 2012-12-20 18:07:32 »

Fog depends on the depth buffer of a 3D scene.

Are you trying to achieve a haze across your screen? Or are you trying to have sprites fade out after a certain distance?

For those kind of effects (in 2D or 3D) you should learn GLSL:
https://github.com/mattdesl/lwjgl-basics/wiki/Shaders

You can probably get away with vertex colors if you need a GL11 solution, but it won't look as good.

Offline Hazzy

Senior Newbie





« Reply #2 - Posted 2012-12-20 18:11:02 »

I'm basically trying to get a 'misty' look on top. Maybe zoom in/out features will be added later so if I can create a nice effect that fades things in/out - that would be pretty cool.
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline davedes
« Reply #3 - Posted 2012-12-20 18:13:42 »

Take a transparent 128x128 image of some foggy/misty stuff, draw it at a much larger scale (linear filtering), and have it move across the screen. Then it will look like fog/clouds.

Otherwise start learning shaders if you want something more impressive.

Offline Hazzy

Senior Newbie





« Reply #4 - Posted 2012-12-20 18:17:10 »

Thanks! Smiley

Checking out the GLSL tutorials from the link you gave me. I just don't want to move directly to that yet though so I'll probably take my time with it. Some really impressive looking stuff on heroku, too!
Offline sproingie
« Reply #5 - Posted 2012-12-20 18:23:36 »

Stacking and sliding around a couple layers of mostly-transparent noise gives it a much more realistic effect than just one layer alone.  Keep in mind no effect is free, and ones that involve a lot of blending tend to be much more expensive.
Pages: [1]
  ignore  |  Print  
 
 

Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars!
 
Play Revenge of the Titans! The situation is critical. We need fancy commanders to defend Earth, the moon, Mars and Titan!

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

The invasion has landed! On Mars! And you're there to beat 'em!
cubemaster21 (108 views)
2013-05-17 21:29:12

alaslipknot (116 views)
2013-05-16 21:24:48

gouessej (145 views)
2013-05-16 00:53:38

gouessej (141 views)
2013-05-16 00:17:58

theagentd (153 views)
2013-05-15 15:01:13

theagentd (137 views)
2013-05-15 15:00:54

StreetDoggy (181 views)
2013-05-14 15:56:26

kutucuk (205 views)
2013-05-12 17:10:36

kutucuk (205 views)
2013-05-12 15:36:09

UnluckyDevil (211 views)
2013-05-12 05:09:57
Complex number cookbook
by Roquen
2013-04-24 12:47:31

2D Dynamic Lighting
by Oskuro
2013-04-17 16:46:12

2D Dynamic Lighting
by Oskuro
2013-04-17 16:45:57

2D Dynamic Lighting
by Oskuro
2013-04-17 16:23:20

Noise (bandpassed white)
by Roquen
2013-04-05 17:36:01

Noise (bandpassed white)
by Roquen
2013-04-03 16:17:38

Java Data structures
by Roquen
2013-03-29 13:21:12

Topic Request
by kutucuk
2013-03-22 21:42:01
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!
Page created in 0.105 seconds with 20 queries.