From 4513b64b00eeff294d83be23700000618357ee0b Mon Sep 17 00:00:00 2001 From: samcake Date: Mon, 21 Sep 2015 22:42:24 -0700 Subject: [PATCH] fixing review comments --- interface/src/ModelPackager.cpp | 2 +- libraries/fbx/src/FBXReader.cpp | 10 +-- libraries/gpu/src/gpu/Shader.cpp | 99 ++++++++++---------------- libraries/gpu/src/gpu/Shader.h | 21 ------ libraries/model/src/model/Material.slh | 31 ++++---- libraries/render-utils/src/model.slv | 32 --------- 6 files changed, 60 insertions(+), 135 deletions(-) diff --git a/interface/src/ModelPackager.cpp b/interface/src/ModelPackager.cpp index 5e045d4ca8..35be11f2bb 100644 --- a/interface/src/ModelPackager.cpp +++ b/interface/src/ModelPackager.cpp @@ -340,7 +340,7 @@ void ModelPackager::populateBasicMapping(QVariantHash& mapping, QString filename void ModelPackager::listTextures() { _textures.clear(); - foreach (FBXMaterial mat, _geometry->materials) { + foreach (const FBXMaterial mat, _geometry->materials) { if (!mat.diffuseTexture.filename.isEmpty() && mat.diffuseTexture.content.isEmpty() && !_textures.contains(mat.diffuseTexture.filename)) { _textures << mat.diffuseTexture.filename; diff --git a/libraries/fbx/src/FBXReader.cpp b/libraries/fbx/src/FBXReader.cpp index 91d2739887..d1798df397 100644 --- a/libraries/fbx/src/FBXReader.cpp +++ b/libraries/fbx/src/FBXReader.cpp @@ -246,19 +246,19 @@ public: glm::mat4 transformLink; }; -void appendModelIDs(const QString& parentID, const QMultiHash& _connectionChildMap, +void appendModelIDs(const QString& parentID, const QMultiHash& connectionChildMap, QHash& models, QSet& remainingModels, QVector& modelIDs) { if (remainingModels.contains(parentID)) { modelIDs.append(parentID); remainingModels.remove(parentID); } int parentIndex = modelIDs.size() - 1; - foreach (const QString& childID, _connectionChildMap.values(parentID)) { + foreach (const QString& childID, connectionChildMap.values(parentID)) { if (remainingModels.contains(childID)) { FBXModel& model = models[childID]; if (model.parentIndex == -1) { model.parentIndex = parentIndex; - appendModelIDs(childID, _connectionChildMap, models, remainingModels, modelIDs); + appendModelIDs(childID, connectionChildMap, models, remainingModels, modelIDs); } } } @@ -403,11 +403,11 @@ void addBlendshapes(const ExtractedBlendshape& extracted, const QList& _connectionParentMap, +QString getTopModelID(const QMultiHash& connectionParentMap, const QHash& models, const QString& modelID) { QString topID = modelID; forever { - foreach (const QString& parentID, _connectionParentMap.values(topID)) { + foreach (const QString& parentID, connectionParentMap.values(topID)) { if (models.contains(parentID)) { topID = parentID; goto outerContinue; diff --git a/libraries/gpu/src/gpu/Shader.cpp b/libraries/gpu/src/gpu/Shader.cpp index 223a78ed93..60bcbdaed0 100755 --- a/libraries/gpu/src/gpu/Shader.cpp +++ b/libraries/gpu/src/gpu/Shader.cpp @@ -1,40 +1,40 @@ -// -// Shader.cpp -// libraries/gpu/src/gpu -// -// Created by Sam Gateau on 2/27/2015. -// 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 -// - -#include "Shader.h" -#include -#include - -#include "Context.h" - -using namespace gpu; - -Shader::Shader(Type type, const Source& source): - _source(source), - _type(type) -{ -} - -Shader::Shader(Type type, Pointer& vertex, Pointer& pixel): - _type(type) -{ - _shaders.resize(2); - _shaders[VERTEX] = vertex; - _shaders[PIXEL] = pixel; -} - - -Shader::~Shader() -{ -} +// +// Shader.cpp +// libraries/gpu/src/gpu +// +// Created by Sam Gateau on 2/27/2015. +// 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 +// + +#include "Shader.h" +#include +#include + +#include "Context.h" + +using namespace gpu; + +Shader::Shader(Type type, const Source& source): + _source(source), + _type(type) +{ +} + +Shader::Shader(Type type, Pointer& vertex, Pointer& pixel): + _type(type) +{ + _shaders.resize(2); + _shaders[VERTEX] = vertex; + _shaders[PIXEL] = pixel; +} + + +Shader::~Shader() +{ +} Shader* Shader::createVertex(const Source& source) { Shader* shader = new Shader(VERTEX, source); @@ -71,28 +71,3 @@ bool Shader::makeProgram(Shader& shader, const Shader::BindingSet& bindings) { } return false; } - - -// ShaderSource -ShaderSource::ShaderSource() { -} - -ShaderSource::~ShaderSource() { -} - -void ShaderSource::reset(const QUrl& url) { - _shaderUrl = url; - _gpuShader.reset(); -} - -void ShaderSource::resetShader(gpu::Shader* shader) { - _gpuShader.reset(shader); -} - -bool ShaderSource::isDefined() const { - if (_gpuShader) { - return true; - } else { - return false; - } -} diff --git a/libraries/gpu/src/gpu/Shader.h b/libraries/gpu/src/gpu/Shader.h index d3c3992e6d..55812c6166 100755 --- a/libraries/gpu/src/gpu/Shader.h +++ b/libraries/gpu/src/gpu/Shader.h @@ -189,27 +189,6 @@ protected: typedef Shader::Pointer ShaderPointer; typedef std::vector< ShaderPointer > Shaders; -// ShaderSource is the bridge between a URL or a a way to produce the final gpu::Shader that will be used to render it. -class ShaderSource { -public: - ShaderSource(); - ~ShaderSource(); - - const QUrl& getUrl() const { return _shaderUrl; } - const gpu::ShaderPointer getGPUShader() const { return _gpuShader; } - - void reset(const QUrl& url); - - void resetShader(gpu::Shader* texture); - - bool isDefined() const; - -protected: - gpu::ShaderPointer _gpuShader; - QUrl _shaderUrl; -}; -typedef std::shared_ptr< ShaderSource > ShaderSourcePointer; - }; diff --git a/libraries/model/src/model/Material.slh b/libraries/model/src/model/Material.slh index 2f75c2b41e..35aa96042c 100644 --- a/libraries/model/src/model/Material.slh +++ b/libraries/model/src/model/Material.slh @@ -25,6 +25,8 @@ uniform materialBuffer { Material getMaterial() { return _mat; } + + T) { - return pow((cs * A + B), G); - } else { - return cs * C; + // C = 1 / 12.92 = 0.0773993808 + // G = 2.4 + const float T = 0.04045; + const float A = 0.947867; + const float B = 0.052132; + const float C = 0.077399; + const float G = 2.4; + + if (cs > T) { + return pow((cs * A + B), G); + } else { + return cs * C; } } -vec3 SRGBToLinear(vec3 srgb) { +vec3 SRGBToLinear(vec3 srgb) { return vec3(componentSRGBToLinear(srgb.x),componentSRGBToLinear(srgb.y),componentSRGBToLinear(srgb.z)); } vec3 getMaterialDiffuse(Material m) { return (gl_FragCoord.x < 800 ? SRGBToLinear(m._diffuse.rgb) : m._diffuse.rgb); } -*/ +*/!> + float getMaterialOpacity(Material m) { return m._diffuse.a; } vec3 getMaterialDiffuse(Material m) { return m._diffuse.rgb; } vec3 getMaterialSpecular(Material m) { return m._specular.rgb; } diff --git a/libraries/render-utils/src/model.slv b/libraries/render-utils/src/model.slv index 75237b52b7..6d56833de1 100755 --- a/libraries/render-utils/src/model.slv +++ b/libraries/render-utils/src/model.slv @@ -17,36 +17,6 @@ <$declareStandardTransform()$> - -/* -float componentSRGBToLinear(float cs) { - // sRGB to linear conversion - // { cs / 12.92, cs <= 0.04045 - // cl = { - // { ((cs + 0.055)/1.055)^2.4, cs > 0.04045 - // constants: - // T = 0.04045 - // A = 1 / 1.055 = 0.94786729857 - // B = 0.055 * A = 0.05213270142 - // C = 1 / 12.92 = 0.0773993808 - // G = 2.4 - const float T = 0.04045; - const float A = 0.947867; - const float B = 0.052132; - const float C = 0.077399; - const float G = 2.4; - - if (cs > T) { - return pow((cs * A + B), G); - } else { - return cs * C; - } -} - -vec3 SRGBToLinear(vec3 srgb) { - return vec3(componentSRGBToLinear(srgb.x),componentSRGBToLinear(srgb.y),componentSRGBToLinear(srgb.z)); -} -*/ const int MAX_TEXCOORDS = 2; uniform mat4 texcoordMatrices[MAX_TEXCOORDS]; @@ -60,8 +30,6 @@ void main(void) { // pass along the diffuse color _color = inColor.xyz; - // _color = SRGBToLinear(inColor.xyz); - // and the texture coordinates _texCoord0 = (texcoordMatrices[0] * vec4(inTexCoord0.st, 0.0, 1.0)).st;