Java-Gaming.org Hi !
Featured games (83)
games approved by the League of Dukes
Games in Showcase (516)
Games in Android Showcase (123)
games submitted by our members
Games in WIP (577)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
  JavaGaming.org - Pastebin



Author: CopyableCougar4 (posted 2014-07-01 18:15:15, viewed 68 times)

1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18  
#version 130

in vec2 player;
float received;
float distance;
float inverted;

void main(){
   // calculate the distance
   distance = sqrt(((gl_FragCoord.x - player.x) * (gl_FragCoord.x - player.x)) + ((gl_FragCoord.y - player.y) * (gl_FragCoord.y - player.y)));
   // divide by the max view distance
   received = distance / 1000;
   if(received > 1.0){
      received = 1.0;
   }
   inverted = 1.0 - received;
   gl_FragColor = vec4(0.0, 0.0, 0.0, inverted);
}


1   2   3   4   5   6   7   8   9   10   11   12   13   14   15  
#version 130

attribute vec2 playerA;
varying vec2 player;

void main() {
   gl_Position.x = playerA.x;
   gl_Position.y = playerA.y;
   gl_Position.z = 1.0;
   gl_Position.w = 1.0;
    player = playerA;
    //Set the varying to the attribute;
    //Now do everything else, maybe work out some other values to give to the fragment, varying variables don't have to come from
    //attributes. 
}


1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50   51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75   76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99   100   101   102   103   104   105   106   107   108   109   110   111   112   113   114   115   116   117   118   119   120   121   122   123   124   125   126   127   128   129   130   131   132   133   134   135   136   137   138   139   140   141   142   143   144   145   146   147   148   149   150   151   152   153   154   155   156   157   158   159   160   161   162   163   164  
package me.CopyableCougar4.shaders;

import java.awt.Toolkit;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;

import me.CopyableCougar4.main.DisplayManager;
import me.CopyableCougar4.opengl.GLCamera;

import org.lwjgl.opengl.ARBFragmentShader;
import org.lwjgl.opengl.ARBShaderObjects;
import org.lwjgl.opengl.ARBVertexShader;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL20;

public class GLSL {
   
   /**
    * Run a shader program with the player's position passed
    */
   public static void runProgramForPlayer(int program){
      int loc2 = GL20.glGetUniformLocation(program, "player");
      GLCamera camera = DisplayManager.getInstance().getRenderer().getCamera();
      float x = camera.getX();
      float y = Toolkit.getDefaultToolkit().getScreenSize().height - camera.getY();
      GL20.glUniform2f(loc2, x, y);
      ARBShaderObjects.glUseProgramObjectARB(program);
   }
   
   /**
    * Reset the shader program begin used
    */
   public static void resetShaders(){
      ARBShaderObjects.glUseProgramObjectARB(0);
   }
   
   /**
    * Create a shader program
    */
   public static int createShaderProgram(int... shaders){
      int program = ARBShaderObjects.glCreateProgramObjectARB();
      for(int shader : shaders){
         ARBShaderObjects.glAttachObjectARB(program, shader);
      }
      ARBShaderObjects.glLinkProgramARB(program);
        if (ARBShaderObjects.glGetObjectParameteriARB(program, ARBShaderObjects.GL_OBJECT_LINK_STATUS_ARB) == GL11.GL_FALSE) {
            System.err.println(getLogInfo(program));
            return -1;
        }
        ARBShaderObjects.glValidateProgramARB(program);
        if (ARBShaderObjects.glGetObjectParameteriARB(program, ARBShaderObjects.GL_OBJECT_VALIDATE_STATUS_ARB) == GL11.GL_FALSE) {
           System.err.println(getLogInfo(program));
           return -1;
        }
      return program;
   }
   
   /**
    * Get the log info for the program
    */
   private static String getLogInfo(int obj) {
        return ARBShaderObjects.glGetInfoLogARB(obj, ARBShaderObjects.glGetObjectParameteriARB(obj, ARBShaderObjects.GL_OBJECT_INFO_LOG_LENGTH_ARB));
    }
   
   /**
    * Load a vertex shader
    * @throws Exception
    */
   public static int loadVertexShader(String filename) throws Exception{
      int shader = 0;
       try {
           shader = ARBShaderObjects.glCreateShaderObjectARB(ARBVertexShader.GL_VERTEX_SHADER_ARB);
           if(shader == 0)
              return 0;
           ARBShaderObjects.glShaderSourceARB(shader, readFileAsString(filename));
           ARBShaderObjects.glCompileShaderARB(shader);
           if (ARBShaderObjects.glGetObjectParameteriARB(shader, ARBShaderObjects.GL_OBJECT_COMPILE_STATUS_ARB) == GL11.GL_FALSE)
               throw new RuntimeException("Error creating shader: " + ARBShaderObjects.glGetInfoLogARB(shader, ARBShaderObjects.glGetObjectParameteriARB(shader, ARBShaderObjects.GL_OBJECT_INFO_LOG_LENGTH_ARB)));
           return shader;
       }
       catch(Exception exc) {
          ARBShaderObjects.glDeleteObjectARB(shader);
          throw exc;
       }
   }
   
   /**
    * Load a fragment shader
    * @throws Exception 
    */
   public static int loadFragmentShader(String filename) throws Exception{
      int shader = 0;
       try {
           shader = ARBShaderObjects.glCreateShaderObjectARB(ARBFragmentShader.GL_FRAGMENT_SHADER_ARB);
           if(shader == 0)
              return 0;
           ARBShaderObjects.glShaderSourceARB(shader, readFileAsString(filename));
           ARBShaderObjects.glCompileShaderARB(shader);
           if (ARBShaderObjects.glGetObjectParameteriARB(shader, ARBShaderObjects.GL_OBJECT_COMPILE_STATUS_ARB) == GL11.GL_FALSE)
               throw new RuntimeException("Error creating shader: " + ARBShaderObjects.glGetInfoLogARB(shader, ARBShaderObjects.glGetObjectParameteriARB(shader, ARBShaderObjects.GL_OBJECT_INFO_LOG_LENGTH_ARB)));
           return shader;
       }
       catch(Exception exc) {
          ARBShaderObjects.glDeleteObjectARB(shader);
          throw exc;
       }
   }
   
   /**
    * Read the file to a String
    */
   private static String readFileAsString(String filename) throws Exception {
        StringBuilder source = new StringBuilder();
        InputStream in = GLSL.class.getResourceAsStream(filename);
        Exception exception = null;
        BufferedReader reader;
        try{
            reader = new BufferedReader(new InputStreamReader(in,"UTF-8"));
            Exception innerExc= null;
            try {
               String line;
                while((line = reader.readLine()) != null)
                    source.append(line).append('\n');
            }
            catch(Exception exc) {
               exception = exc;
            }
            finally {
               try {
                  reader.close();
               }
               catch(Exception exc) {
                  if(innerExc == null)
                     innerExc = exc;
                  else
                     exc.printStackTrace();
               }
            }
            
            if(innerExc != null)
               throw innerExc;
        }
        catch(Exception exc) {
           exception = exc;
        }
        finally {
           try {
              in.close();
           }
           catch(Exception exc) {
              if(exception == null)
                 exception = exc;
              else
               exc.printStackTrace();
           }
           if(exception != null)
              throw exception;
        }
        return source.toString();
    }

}





Dump your java code here :



Special syntax:
  • To highlight a line (yellow background), prefix it with '@@'
  • To indicate that a line should be removed (red background), prefix it with '-'
  • To indicate that a line should be added (green background), prefix it with '+'
  • To post multiple snippets, seperate them by '~~~~'
  EOF
 

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

The first screenshot will be displayed as a thumbnail.

TehJavaDev (32 views)
2014-10-27 03:28:38

TehJavaDev (26 views)
2014-10-27 03:27:51

DarkCart (41 views)
2014-10-26 19:37:11

Luminem (22 views)
2014-10-26 10:17:50

Luminem (27 views)
2014-10-26 10:14:04

theagentd (33 views)
2014-10-25 15:46:29

Longarmx (61 views)
2014-10-17 03:59:02

Norakomi (58 views)
2014-10-16 15:22:06

Norakomi (47 views)
2014-10-16 15:20:20

lcass (43 views)
2014-10-15 16:18:58
Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
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!