mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-08-18 15:20:14 +02:00
113 lines
2.5 KiB
C
113 lines
2.5 KiB
C
// File generated by Scribe Wed Aug 5 16:50:23 2015
|
|
#ifndef scribe_simple_vert_h
|
|
#define scribe_simple_vert_h
|
|
|
|
const char simple_vert[] = R"SCRIBE(#version 410 core
|
|
// Generated on Wed Aug 5 16:50:23 2015
|
|
//
|
|
// simple.vert
|
|
// vertex shader
|
|
//
|
|
// Created by Andrzej Kapolka on 9/15/14.
|
|
// Copyright 2014 High Fidelity, Inc.
|
|
//
|
|
// Distributed under the Apache License, Version 2.0.
|
|
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
|
|
//
|
|
|
|
in vec4 inPosition;
|
|
in vec4 inNormal;
|
|
in vec4 inColor;
|
|
in vec4 inTexCoord0;
|
|
in vec4 inTangent;
|
|
in vec4 inSkinClusterIndex;
|
|
in vec4 inSkinClusterWeight;
|
|
in vec4 inTexCoord1;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
struct TransformObject {
|
|
mat4 _model;
|
|
mat4 _modelInverse;
|
|
};
|
|
|
|
struct TransformCamera {
|
|
mat4 _view;
|
|
mat4 _viewInverse;
|
|
mat4 _projectionViewUntranslated;
|
|
mat4 _projection;
|
|
mat4 _projectionInverse;
|
|
vec4 _viewport;
|
|
};
|
|
|
|
uniform transformObjectBuffer {
|
|
TransformObject _object;
|
|
};
|
|
TransformObject getTransformObject() {
|
|
return _object;
|
|
}
|
|
|
|
uniform transformCameraBuffer {
|
|
TransformCamera _camera;
|
|
};
|
|
TransformCamera getTransformCamera() {
|
|
return _camera;
|
|
}
|
|
|
|
|
|
// the interpolated normal
|
|
|
|
out vec3 _normal;
|
|
out vec3 _color;
|
|
out vec2 _texCoord0;
|
|
|
|
void main(void) {
|
|
_color = inColor.rgb;
|
|
_texCoord0 = inTexCoord0.st;
|
|
|
|
// standard transform
|
|
TransformCamera cam = getTransformCamera();
|
|
TransformObject obj = getTransformObject();
|
|
|
|
|
|
{ // transformModelToClipPos
|
|
vec4 _eyepos = (obj._model * inPosition) + vec4(-inPosition.w * cam._viewInverse[3].xyz, 0.0);
|
|
gl_Position = cam._projectionViewUntranslated * _eyepos;
|
|
}
|
|
|
|
|
|
{ // transformModelToEyeDir
|
|
vec3 mr0 = vec3(obj._modelInverse[0].x, obj._modelInverse[1].x, obj._modelInverse[2].x);
|
|
vec3 mr1 = vec3(obj._modelInverse[0].y, obj._modelInverse[1].y, obj._modelInverse[2].y);
|
|
vec3 mr2 = vec3(obj._modelInverse[0].z, obj._modelInverse[1].z, obj._modelInverse[2].z);
|
|
|
|
vec3 mvc0 = vec3(dot(cam._viewInverse[0].xyz, mr0), dot(cam._viewInverse[0].xyz, mr1), dot(cam._viewInverse[0].xyz, mr2));
|
|
vec3 mvc1 = vec3(dot(cam._viewInverse[1].xyz, mr0), dot(cam._viewInverse[1].xyz, mr1), dot(cam._viewInverse[1].xyz, mr2));
|
|
vec3 mvc2 = vec3(dot(cam._viewInverse[2].xyz, mr0), dot(cam._viewInverse[2].xyz, mr1), dot(cam._viewInverse[2].xyz, mr2));
|
|
|
|
_normal = vec3(dot(mvc0, inNormal.xyz), dot(mvc1, inNormal.xyz), dot(mvc2, inNormal.xyz));
|
|
}
|
|
|
|
}
|
|
)SCRIBE";
|
|
|
|
#endif
|