Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
OpenFlipper-Free
OpenFlipper
Commits
fd2a7cd5
Commit
fd2a7cd5
authored
Jan 12, 2017
by
Christopher Tenter
Browse files
force renormalization in fragment shader
parent
c226967f
Changes
2
Show whitespace changes
Inline
Side-by-side
libs_required/ACG/GL/ShaderGenerator.cc
View file @
fd2a7cd5
...
...
@@ -80,8 +80,6 @@ macro_requestTexcoord("#define SG_REQUEST_TEXCOORD"),
macro_requestVertexColor
(
"#define SG_REQUEST_VERTEXCOLOR"
),
macro_requestNormalVS
(
"#define SG_REQUEST_NORMALVS"
),
macro_requestNormalOS
(
"#define SG_REQUEST_NORMALOS"
),
// // renormalize normal-vec before lighting in fragment shader
macro_requestRenormalize
(
"#define SG_REQUEST_RENORMARLIZE"
),
// generic default attribute input keywords
// these are extended by the correct input name by the generator for each stage
...
...
@@ -831,44 +829,44 @@ QStringList ShaderProgGenerator::lightingCode_;
ShaderProgGenerator
::
ShaderProgGenerator
(
const
ShaderGenDesc
*
_desc
)
:
vertex_
(
0
),
tessControl_
(
0
),
tessEval_
(
0
),
geometry_
(
0
),
fragment_
(
0
)
,
renormalizeLighting_
(
false
)
:
vertex_
(
0
),
tessControl_
(
0
),
tessEval_
(
0
),
geometry_
(
0
),
fragment_
(
0
)
{
init
(
_desc
,
(
ShaderModifier
**
)
0
,
0
);
}
ShaderProgGenerator
::
ShaderProgGenerator
(
const
ShaderGenDesc
*
_desc
,
const
unsigned
int
*
_modifierIDs
,
unsigned
int
_numActiveMods
)
:
vertex_
(
0
),
tessControl_
(
0
),
tessEval_
(
0
),
geometry_
(
0
),
fragment_
(
0
)
,
renormalizeLighting_
(
false
)
:
vertex_
(
0
),
tessControl_
(
0
),
tessEval_
(
0
),
geometry_
(
0
),
fragment_
(
0
)
{
init
(
_desc
,
_modifierIDs
,
_numActiveMods
);
}
ShaderProgGenerator
::
ShaderProgGenerator
(
const
ShaderGenDesc
*
_desc
,
const
std
::
vector
<
unsigned
int
>&
_modifierIDs
)
:
vertex_
(
0
),
tessControl_
(
0
),
tessEval_
(
0
),
geometry_
(
0
),
fragment_
(
0
)
,
renormalizeLighting_
(
false
)
:
vertex_
(
0
),
tessControl_
(
0
),
tessEval_
(
0
),
geometry_
(
0
),
fragment_
(
0
)
{
init
(
_desc
,
_modifierIDs
.
empty
()
?
0
:
&
_modifierIDs
[
0
],
(
unsigned
int
)
_modifierIDs
.
size
());
}
ShaderProgGenerator
::
ShaderProgGenerator
(
const
ShaderGenDesc
*
_desc
,
const
std
::
vector
<
unsigned
int
>*
_modifierIDs
)
:
vertex_
(
0
),
tessControl_
(
0
),
tessEval_
(
0
),
geometry_
(
0
),
fragment_
(
0
)
,
renormalizeLighting_
(
false
)
:
vertex_
(
0
),
tessControl_
(
0
),
tessEval_
(
0
),
geometry_
(
0
),
fragment_
(
0
)
{
unsigned
int
numMods
=
!
_modifierIDs
||
_modifierIDs
->
empty
()
?
0
:
(
unsigned
int
)
_modifierIDs
->
size
();
init
(
_desc
,
numMods
?
&
((
*
_modifierIDs
)[
0
])
:
0
,
numMods
);
}
ShaderProgGenerator
::
ShaderProgGenerator
(
const
ShaderGenDesc
*
_desc
,
ShaderModifier
*
const
*
_modifiers
,
unsigned
int
_numActiveMods
)
:
vertex_
(
0
),
tessControl_
(
0
),
tessEval_
(
0
),
geometry_
(
0
),
fragment_
(
0
)
,
renormalizeLighting_
(
false
)
:
vertex_
(
0
),
tessControl_
(
0
),
tessEval_
(
0
),
geometry_
(
0
),
fragment_
(
0
)
{
init
(
_desc
,
_modifiers
,
_numActiveMods
);
}
ShaderProgGenerator
::
ShaderProgGenerator
(
const
ShaderGenDesc
*
_desc
,
const
std
::
vector
<
ShaderModifier
*>&
_modifierIDs
)
:
vertex_
(
0
),
tessControl_
(
0
),
tessEval_
(
0
),
geometry_
(
0
),
fragment_
(
0
)
,
renormalizeLighting_
(
false
)
:
vertex_
(
0
),
tessControl_
(
0
),
tessEval_
(
0
),
geometry_
(
0
),
fragment_
(
0
)
{
init
(
_desc
,
_modifierIDs
.
empty
()
?
0
:
&
(
_modifierIDs
[
0
]),
(
unsigned
int
)
_modifierIDs
.
size
());
}
ShaderProgGenerator
::
ShaderProgGenerator
(
const
ShaderGenDesc
*
_desc
,
const
std
::
vector
<
ShaderModifier
*>*
_modifierIDs
)
:
vertex_
(
0
),
tessControl_
(
0
),
tessEval_
(
0
),
geometry_
(
0
),
fragment_
(
0
)
,
renormalizeLighting_
(
false
)
:
vertex_
(
0
),
tessControl_
(
0
),
tessEval_
(
0
),
geometry_
(
0
),
fragment_
(
0
)
{
unsigned
int
numMods
=
!
_modifierIDs
||
_modifierIDs
->
empty
()
?
0
:
(
unsigned
int
)
_modifierIDs
->
size
();
init
(
_desc
,
numMods
?
&
((
*
_modifierIDs
)[
0
])
:
0
,
numMods
);
...
...
@@ -1798,7 +1796,6 @@ void ShaderProgGenerator::addFragmentBeginCode(QStringList* _code)
_code
->
push_back
(
QString
(
"#ifdef "
)
+
ShaderGenerator
::
keywords
.
macro_inputNormalVS
);
_code
->
push_back
(
QString
(
"vec3 sg_vNormalVS = "
)
+
ShaderGenerator
::
keywords
.
macro_inputNormalVS
+
QString
(
";"
));
if
(
renormalizeLighting_
)
_code
->
push_back
(
"sg_vNormalVS = normalize(sg_vNormalVS);"
);
_code
->
push_back
(
"#endif"
);
...
...
@@ -2199,8 +2196,6 @@ void ShaderProgGenerator::generateShaders()
if
(
dummy
.
hasDefine
(
ShaderGenerator
::
keywords
.
macro_requestPosOS
))
ioDesc_
.
passPosOS_
=
true
;
if
(
dummy
.
hasDefine
(
ShaderGenerator
::
keywords
.
macro_requestRenormalize
))
renormalizeLighting_
=
true
;
...
...
@@ -2393,8 +2388,6 @@ void ShaderProgGenerator::scanShaderTemplate(QStringList& _templateSrc, QString
}
else
if
(
trimmedLine
.
startsWith
(
ShaderGenerator
::
keywords
.
macro_requestPosOS
))
ioDesc_
.
passPosOS_
=
true
;
else
if
(
trimmedLine
.
startsWith
(
ShaderGenerator
::
keywords
.
macro_requestRenormalize
))
renormalizeLighting_
=
true
;
else
if
(
trimmedLine
.
startsWith
(
"SG_FRAGMENT_LIGHTING"
))
{
// shader template performs lighting in fragment shader
...
...
libs_required/ACG/GL/ShaderGenerator.hh
View file @
fd2a7cd5
...
...
@@ -786,9 +786,7 @@ public:
macro_requestTexcoord
,
// mesh texture coordinate
macro_requestVertexColor
,
// vertex color
macro_requestNormalVS
,
// view space normal
macro_requestNormalOS
,
// object space normal
macro_requestRenormalize
;
// normal should be renormalized before using it for lighting
macro_requestNormalOS
;
// object space normal
// input / output abstraction macros
QString
macro_inputPosVS
,
...
...
@@ -1389,9 +1387,6 @@ private:
/// default IO descriptor for the vertex shader
ShaderGenerator
::
DefaultIODesc
ioDesc_
;
/// renormalize before lighting, default false, can be activated via "#define SG_REQUEST_RENORMALIZE"
bool
renormalizeLighting_
;
static
QString
shaderDir_
;
static
QStringList
lightingCode_
;
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment