1 /* 2 * Copyright (c) 2009-2010 jMonkeyEngine 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: 8 * 9 * * Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * 12 * * Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the 14 * documentation and/or other materials provided with the distribution. 15 * 16 * * Neither the name of 'jMonkeyEngine' nor the names of its contributors 17 * may be used to endorse or promote products derived from this software 18 * without specific prior written permission. 19 * 20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 22 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 23 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 24 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 25 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 26 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 27 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 28 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 29 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 30 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 */ 32 33 package com.jme3.shader; 34 35 public enum UniformBinding { 36 37 /** 38 * The world matrix. Converts Model space to World space. 39 * Type: mat4 40 */ 41 WorldMatrix, 42 43 /** 44 * The view matrix. Converts World space to View space. 45 * Type: mat4 46 */ 47 ViewMatrix, 48 49 /** 50 * The projection matrix. Converts View space to Clip/Projection space. 51 * Type: mat4 52 */ 53 ProjectionMatrix, 54 55 /** 56 * The world view matrix. Converts Model space to View space. 57 * Type: mat4 58 */ 59 WorldViewMatrix, 60 61 /** 62 * The normal matrix. The inverse transpose of the worldview matrix. 63 * Converts normals from model space to view space. 64 * Type: mat3 65 */ 66 NormalMatrix, 67 68 /** 69 * The world view projection matrix. Converts Model space to Clip/Projection 70 * space. 71 * Type: mat4 72 */ 73 WorldViewProjectionMatrix, 74 75 /** 76 * The view projection matrix. Converts World space to Clip/Projection 77 * space. 78 * Type: mat4 79 */ 80 ViewProjectionMatrix, 81 82 /** 83 * The world matrix inverse transpose. Converts a normals from Model space 84 * to world space. 85 * Type: mat3 86 */ 87 WorldMatrixInverseTranspose, 88 89 90 91 WorldMatrixInverse, 92 ViewMatrixInverse, 93 ProjectionMatrixInverse, 94 ViewProjectionMatrixInverse, 95 WorldViewMatrixInverse, 96 NormalMatrixInverse, 97 WorldViewProjectionMatrixInverse, 98 99 /** 100 * Contains the four viewport parameters in this order: 101 * X = Left, 102 * Y = Top, 103 * Z = Right, 104 * W = Bottom. 105 * Type: vec4 106 */ 107 ViewPort, 108 109 /** 110 * The near and far values for the camera frustum. 111 * X = Near 112 * Y = Far. 113 * Type: vec2 114 */ 115 FrustumNearFar, 116 117 /** 118 * The width and height of the camera. 119 * Type: vec2 120 */ 121 Resolution, 122 123 /** 124 * The inverse of the resolution, 1/width and 1/height. 125 * Type: vec2 126 */ 127 ResolutionInverse, 128 129 /** 130 * Aspect ratio of the resolution currently set. Width/Height. 131 * Type: float 132 */ 133 Aspect, 134 135 /** 136 * Camera position in world space. 137 * Type: vec3 138 */ 139 CameraPosition, 140 141 /** 142 * Direction of the camera. 143 * Type: vec3 144 */ 145 CameraDirection, 146 147 /** 148 * Left vector of the camera. 149 * Type: vec3 150 */ 151 CameraLeft, 152 153 /** 154 * Up vector of the camera. 155 * Type: vec3 156 */ 157 CameraUp, 158 159 /** 160 * Time in seconds since the application was started. 161 * Type: float 162 */ 163 Time, 164 165 /** 166 * Time in seconds that the last frame took. 167 * Type: float 168 */ 169 Tpf, 170 171 /** 172 * Frames per second. 173 * Type: float 174 */ 175 FrameRate, 176 } 177