History

hacking on transparency

ZappoMan committed 11 years ago

Commit ea31fdc1 parent 4b46fc31 file · +12 −3Browse files

Showing the changes to libraries/render-utils/src/Model.cpp (1 of 1 file). Show all

Unified · Split

libraries/render-utils/src/Model.cpp+12−3
@@ -791,6 +791,7 @@ namespace render { · 790 unmodified lines
791 template <> void payloadRender(const TransparentMeshPart::Pointer& payload, RenderArgs* args) {791 template <> void payloadRender(const TransparentMeshPart::Pointer& payload, RenderArgs* args) {
792 if (args) {792 if (args) {
793 args->_elementsTouched++;793 args->_elementsTouched++;
794 //qDebug() << "would be TransparentMeshPart: " << payload->meshIndex << "," << payload->partIndex;
794 return payload->model->renderPart(args, payload->meshIndex, payload->partIndex, true);795 return payload->model->renderPart(args, payload->meshIndex, payload->partIndex, true);
795 }796 }
796 }797 }
@@ -2189,6 +2190,13 @@ AABox Model::getPartBounds(int meshIndex, int partIndex) { · 1392 unmodified lines
2189 2190
2190void Model::renderPart(RenderArgs* args, int meshIndex, int partIndex, bool translucent) {2191void Model::renderPart(RenderArgs* args, int meshIndex, int partIndex, bool translucent) {
2191 renderSetup(args);2192 renderSetup(args);
2193
2194 /*
2195 if (translucent) {
2196 renderCore(args, 1.0f);
2197 return;
2198 }
2199 */
2192 auto textureCache = DependencyManager::get<TextureCache>();2200 auto textureCache = DependencyManager::get<TextureCache>();
2193 2201
2194 gpu::Batch& batch = *(args->_batch);2202 gpu::Batch& batch = *(args->_batch);
@@ -2207,8 +2215,9 @@ void Model::renderPart(RenderArgs* args, int meshIndex, int partIndex, bool tran · 12 unmodified lines
2207 batch.setViewTransform(_transforms[0]);2215 batch.setViewTransform(_transforms[0]);
2208 2216
2209 2217
2210 const float DEFAULT_ALPHA_THRESHOLD = 0.5f; // 2218 const float OPAQUE_ALPHA_THRESHOLD = 0.5f;
2211 auto alphaThreshold = DEFAULT_ALPHA_THRESHOLD; // FIX ME2219 const float TRANSPARENT_ALPHA_THRESHOLD = 0.0f;
2220 auto alphaThreshold = translucent ? TRANSPARENT_ALPHA_THRESHOLD : OPAQUE_ALPHA_THRESHOLD; // FIX ME
2212 const FBXGeometry& geometry = _geometry->getFBXGeometry();2221 const FBXGeometry& geometry = _geometry->getFBXGeometry();
2213 const QVector<NetworkMesh>& networkMeshes = _geometry->getMeshes();2222 const QVector<NetworkMesh>& networkMeshes = _geometry->getMeshes();
2214 2223
@@ -2216,7 +2225,7 @@ void Model::renderPart(RenderArgs* args, int meshIndex, int partIndex, bool tran · 1 unmodified line
2216 const FBXMesh& mesh = geometry.meshes.at(meshIndex);2225 const FBXMesh& mesh = geometry.meshes.at(meshIndex);
2217 const MeshState& state = _meshStates.at(meshIndex);2226 const MeshState& state = _meshStates.at(meshIndex);
2218 2227
2219 bool translucentMesh = networkMesh.getTranslucentPartCount(mesh) == networkMesh.parts.size();2228 bool translucentMesh = translucent; // networkMesh.getTranslucentPartCount(mesh) == networkMesh.parts.size();
2220 bool hasTangents = !mesh.tangents.isEmpty();2229 bool hasTangents = !mesh.tangents.isEmpty();
2221 bool hasSpecular = mesh.hasSpecularTexture();2230 bool hasSpecular = mesh.hasSpecularTexture();
2222 bool hasLightmap = mesh.hasEmissiveTexture();2231 bool hasLightmap = mesh.hasEmissiveTexture();