diff options
Diffstat (limited to 'src/Runtime/ogl-runtime/res/effectlib/wireframeCM.glsllib')
m--------- | src/Runtime/ogl-runtime | 0 | ||||
-rw-r--r-- | src/Runtime/ogl-runtime/res/effectlib/wireframeCM.glsllib | 169 |
2 files changed, 0 insertions, 169 deletions
diff --git a/src/Runtime/ogl-runtime b/src/Runtime/ogl-runtime new file mode 160000 +Subproject 2025912174c4cf99270b7439ec3b021e1d089ae diff --git a/src/Runtime/ogl-runtime/res/effectlib/wireframeCM.glsllib b/src/Runtime/ogl-runtime/res/effectlib/wireframeCM.glsllib deleted file mode 100644 index fcbf7e9f..00000000 --- a/src/Runtime/ogl-runtime/res/effectlib/wireframeCM.glsllib +++ /dev/null @@ -1,169 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 NVIDIA Corporation. -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of Qt 3D Studio. -** -** $QT_BEGIN_LICENSE:GPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 or (at your option) any later version -** approved by the KDE Free Qt Foundation. The licenses are as published by -** the Free Software Foundation and appearing in the file LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef WIREFRAME_CM_GLSLLIB -#define WIREFRAME_CM_GLSLLIB - -#ifdef GL_ES -precision highp float; -precision highp int; -#endif - -#if (TESSELLATION_EVALUATION_SHADER == 1) -#define VARYING_NAME(varyingName) varyingName##TE -#else -#define VARYING_NAME(varyingName) varyingName##VX -#endif - -attribute vec3 VARYING_NAME(varNormal)[]; -attribute vec3 VARYING_NAME(varObjPos)[]; - -varying vec3 varNormal; -varying vec3 varObjPos; - -#if QT3DS_ENABLE_UV0 -attribute vec3 VARYING_NAME(varTexCoord0)[]; -varying vec3 varTexCoord0; -#endif - -#if QT3DS_ENABLE_TEXTAN -attribute vec3 VARYING_NAME(varTangent)[]; -attribute vec3 VARYING_NAME(varObjTangent)[]; -varying vec3 varTangent; -varying vec3 varObjTangent; -#endif - -#if QT3DS_ENABLE_BINORMAL -attribute vec3 VARYING_NAME(varBinormal)[]; -attribute vec3 VARYING_NAME(varObjBinormal)[]; -varying vec3 varBinormal; -varying vec3 varObjBinormal; -#endif - -#if QT3DS_ENABLE_WORLD_POSITION -attribute vec3 VARYING_NAME(varWorldPos)[]; -varying vec3 varWorldPos; -#endif - -varying vec3 varEdgeDistance; - -uniform mat4 viewport_matrix; - -layout (triangles) in; -layout (triangle_strip, max_vertices = 3) out; - -void main() -{ - // how this all work see http://developer.download.nvidia.com/SDK/10.5/direct3d/Source/SolidWireframe/Doc/SolidWireframe.pdf - // project points to screen space - vec3 p0 = vec3(viewport_matrix * (gl_in[0].gl_Position / gl_in[0].gl_Position.w)); - vec3 p1 = vec3(viewport_matrix * (gl_in[1].gl_Position / gl_in[1].gl_Position.w)); - vec3 p2 = vec3(viewport_matrix * (gl_in[2].gl_Position / gl_in[2].gl_Position.w)); - // compute triangle heights - float e1 = length(p1 - p2); - float e2 = length(p2 - p0); - float e3 = length(p1 - p0); - float alpha = acos( (e2*e2 + e3*e3 - e1*e1) / (2.0*e2*e3) ); - float beta = acos( (e1*e1 + e3*e3 - e2*e2) / (2.0*e1*e3) ); - float ha = abs( e3 * sin( beta ) ); - float hb = abs( e3 * sin( alpha ) ); - float hc = abs( e2 * sin( alpha ) ); - - - // vertex 0 - varEdgeDistance = vec3(ha*gl_in[0].gl_Position.w, 0.0, 0.0); - varNormal = VARYING_NAME(varNormal)[0]; - varObjPos = VARYING_NAME(varObjPos)[0]; -#if QT3DS_ENABLE_UV0 - varTexCoord0 = VARYING_NAME(varTexCoord0)[0]; -#endif -#if QT3DS_ENABLE_TEXTAN - varTangent = VARYING_NAME(varTangent)[0]; - varObjTangent = VARYING_NAME(varObjTangent)[0]; -#endif -#if QT3DS_ENABLE_BINORMAL - varBinormal = VARYING_NAME(varBinormal)[0]; - varObjBinormal = VARYING_NAME(varObjBinormal)[0]; -#endif -#if QT3DS_ENABLE_WORLD_POSITION - varWorldPos = VARYING_NAME(varWorldPos)[0]; -#endif - - gl_Position = gl_in[0].gl_Position; - EmitVertex(); - - // vertex 1 - varEdgeDistance = vec3(0.0, hb*gl_in[1].gl_Position.w, 0.0); - varNormal = VARYING_NAME(varNormal)[1]; - varObjPos = VARYING_NAME(varObjPos)[1]; -#if QT3DS_ENABLE_UV0 - varTexCoord0 = VARYING_NAME(varTexCoord0)[1]; -#endif -#if QT3DS_ENABLE_TEXTAN - varTangent = VARYING_NAME(varTangent)[1]; - varObjTangent = VARYING_NAME(varObjTangent)[1]; -#endif -#if QT3DS_ENABLE_BINORMAL - varBinormal = VARYING_NAME(varBinormal)[1]; - varObjBinormal = VARYING_NAME(varObjBinormal)[1]; -#endif -#if QT3DS_ENABLE_WORLD_POSITION - varWorldPos = VARYING_NAME(varWorldPos)[1]; -#endif - - gl_Position = gl_in[1].gl_Position; - EmitVertex(); - - // vertex 2 - varEdgeDistance = vec3(0.0, 0.0, hc*gl_in[2].gl_Position.w); - varNormal = VARYING_NAME(varNormal)[2]; - varObjPos = VARYING_NAME(varObjPos)[2]; -#if QT3DS_ENABLE_UV0 - varTexCoord0 = VARYING_NAME(varTexCoord0)[2]; -#endif -#if QT3DS_ENABLE_TEXTAN - varTangent = VARYING_NAME(varTangent)[2]; - varObjTangent = VARYING_NAME(varObjTangent)[2]; -#endif -#if QT3DS_ENABLE_BINORMAL - varBinormal = VARYING_NAME(varBinormal)[2]; - varObjBinormal = VARYING_NAME(varObjBinormal)[2]; -#endif -#if QT3DS_ENABLE_WORLD_POSITION - varWorldPos = VARYING_NAME(varWorldPos)[2]; -#endif - - gl_Position = gl_in[2].gl_Position; - EmitVertex(); - - EndPrimitive(); -} - -#endif |