[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60693] trunk/blender/intern/cycles/render : Code cleanup: remove some unused cycles SSS code.

Brecht Van Lommel brechtvanlommel at pandora.be
Sat Oct 12 02:08:32 CEST 2013


Revision: 60693
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60693
Author:   blendix
Date:     2013-10-12 00:08:31 +0000 (Sat, 12 Oct 2013)
Log Message:
-----------
Code cleanup: remove some unused cycles SSS code.

Modified Paths:
--------------
    trunk/blender/intern/cycles/render/CMakeLists.txt
    trunk/blender/intern/cycles/render/shader.cpp
    trunk/blender/intern/cycles/render/shader.h

Removed Paths:
-------------
    trunk/blender/intern/cycles/render/bssrdf.cpp
    trunk/blender/intern/cycles/render/bssrdf.h

Modified: trunk/blender/intern/cycles/render/CMakeLists.txt
===================================================================
--- trunk/blender/intern/cycles/render/CMakeLists.txt	2013-10-11 23:14:01 UTC (rev 60692)
+++ trunk/blender/intern/cycles/render/CMakeLists.txt	2013-10-12 00:08:31 UTC (rev 60693)
@@ -18,7 +18,6 @@
 	background.cpp
 	blackbody.cpp
 	buffers.cpp
-	bssrdf.cpp
 	camera.cpp
 	film.cpp
 	graph.cpp
@@ -47,7 +46,6 @@
 	background.h
 	blackbody.h
 	buffers.h
-	bssrdf.h
 	camera.h
 	film.h
 	graph.h

Deleted: trunk/blender/intern/cycles/render/bssrdf.cpp
===================================================================
--- trunk/blender/intern/cycles/render/bssrdf.cpp	2013-10-11 23:14:01 UTC (rev 60692)
+++ trunk/blender/intern/cycles/render/bssrdf.cpp	2013-10-12 00:08:31 UTC (rev 60693)
@@ -1,134 +0,0 @@
-/*
- * Copyright 2011-2013 Blender Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-#include "bssrdf.h"
-
-#include "util_algorithm.h"
-#include "util_math.h"
-#include "util_types.h"
-
-#include "kernel_types.h"
-#include "kernel_montecarlo.h"
-
-CCL_NAMESPACE_BEGIN
-
-static float bssrdf_cubic(float ld, float r)
-{
-	if(ld == 0.0f)
-		return (r == 0.0f)? 1.0f: 0.0f;
-
-	return powf(ld - min(r, ld), 3.0f) * 4.0f/powf(ld, 4.0f);
-}
-
-/* Cumulative density function utilities */
-
-static float cdf_lookup_inverse(const vector<float>& table, float2 range, float x)
-{
-	int index = upper_bound(table.begin(), table.end(), x) - table.begin();
-
-	if(index == 0)
-		return range[0];
-	else if(index == table.size())
-		return range[1];
-	else
-		index--;
-	
-	float t = (x - table[index])/(table[index+1] - table[index]);
-	float y = ((index + t)/(table.size() - 1));
-
-	return y*(range[1] - range[0]) + range[0];
-}
-
-static void cdf_invert(vector<float>& to, float2 to_range, const vector<float>& from, float2 from_range)
-{
-	float step = 1.0f/(float)(to.size() - 1);
-
-	for(int i = 0; i < to.size(); i++) {
-		float x = (i*step)*(from_range[1] - from_range[0]) + from_range[0];
-		to[i] = cdf_lookup_inverse(from, to_range, x);
-	}
-}
-
-/* BSSRDF */
-
-static void bssrdf_lookup_table_create(float ld, vector<float>& sample_table, vector<float>& pdf_table)
-{
-	const int size = BSSRDF_RADIUS_TABLE_SIZE;
-	vector<float> cdf(size);
-	vector<float> pdf(size);
-	float step = 1.0f/(float)(size - 1);
-	float max_radius = ld;
-	float pdf_sum = 0.0f;
-
-	/* compute the probability density function */
-	for(int i = 0; i < pdf.size(); i++) {
-		float x = (i*step)*max_radius;
-		pdf[i] = bssrdf_cubic(ld, x);
-		pdf_sum += pdf[i];
-	}
-
-	/* adjust for area covered by each distance */
-	for(int i = 0; i < pdf.size(); i++) {
-		float x = (i*step)*max_radius;
-		pdf[i] *= M_2PI_F*x;
-	}
-
-	/* normalize pdf, we multiply in reflectance later */
-	if(pdf_sum > 0.0f)
-		for(int i = 0; i < pdf.size(); i++)
-			pdf[i] /= pdf_sum;
-
-	/* sum to account for sampling which uses overlapping sphere */
-	for(int i = pdf.size() - 2; i >= 0; i--)
-		pdf[i] = pdf[i] + pdf[i+1];
-
-	/* compute the cumulative density function */
-	cdf[0] = 0.0f;
-
-	for(int i = 1; i < size; i++)
-		cdf[i] = cdf[i-1] + 0.5f*(pdf[i-1] + pdf[i])*step*max_radius;
-	
-	/* invert cumulative density function for importance sampling */
-	float2 cdf_range = make_float2(0.0f, cdf[size - 1]);
-	float2 table_range = make_float2(0.0f, max_radius);
-
-	cdf_invert(sample_table, table_range, cdf, cdf_range);
-
-	/* copy pdf table */
-	for(int i = 0; i < pdf.size(); i++)
-		pdf_table[i] = pdf[i];
-}
-
-void bssrdf_table_build(vector<float>& table)
-{
-	vector<float> sample_table(BSSRDF_RADIUS_TABLE_SIZE);
-	vector<float> pdf_table(BSSRDF_RADIUS_TABLE_SIZE);
-
-	table.resize(BSSRDF_LOOKUP_TABLE_SIZE);
-
-	/* create a 2D lookup table, for reflection x sample radius */
-	for(int i = 0; i < BSSRDF_REFL_TABLE_SIZE; i++) {
-		float radius = 1.0f;
-
-		bssrdf_lookup_table_create(radius, sample_table, pdf_table);
-
-		memcpy(&table[i*BSSRDF_RADIUS_TABLE_SIZE], &sample_table[0], BSSRDF_RADIUS_TABLE_SIZE*sizeof(float));
-		memcpy(&table[BSSRDF_PDF_TABLE_OFFSET + i*BSSRDF_RADIUS_TABLE_SIZE], &pdf_table[0], BSSRDF_RADIUS_TABLE_SIZE*sizeof(float));
-	}
-}
-
-CCL_NAMESPACE_END
-

Deleted: trunk/blender/intern/cycles/render/bssrdf.h
===================================================================
--- trunk/blender/intern/cycles/render/bssrdf.h	2013-10-11 23:14:01 UTC (rev 60692)
+++ trunk/blender/intern/cycles/render/bssrdf.h	2013-10-12 00:08:31 UTC (rev 60693)
@@ -1,29 +0,0 @@
-/*
- * Copyright 2011-2013 Blender Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-#ifndef __BSSRDF_H__
-#define __BSSRDF_H__
-
-#include "util_vector.h"
-
-CCL_NAMESPACE_BEGIN
-
-void bssrdf_table_build(vector<float>& table);
-
-CCL_NAMESPACE_END
-
-#endif /* __BSSRDF_H__ */
-

Modified: trunk/blender/intern/cycles/render/shader.cpp
===================================================================
--- trunk/blender/intern/cycles/render/shader.cpp	2013-10-11 23:14:01 UTC (rev 60692)
+++ trunk/blender/intern/cycles/render/shader.cpp	2013-10-12 00:08:31 UTC (rev 60693)
@@ -15,7 +15,6 @@
  */
 
 #include "background.h"
-#include "bssrdf.h"
 #include "blackbody.h"
 #include "device.h"
 #include "graph.h"
@@ -127,7 +126,6 @@
 ShaderManager::ShaderManager()
 {
 	need_update = true;
-	bssrdf_table_offset = TABLE_OFFSET_INVALID;
 	blackbody_table_offset = TABLE_OFFSET_INVALID;
 }
 
@@ -254,23 +252,6 @@
 
 	device->tex_alloc("__shader_flag", dscene->shader_flag);
 
-	/* bssrdf lookup table */
-	KernelBSSRDF *kbssrdf = &dscene->data.bssrdf;
-
-	if(has_surface_bssrdf && bssrdf_table_offset == TABLE_OFFSET_INVALID) {
-		vector<float> table;
-
-		bssrdf_table_build(table);
-		bssrdf_table_offset = scene->lookup_tables->add_table(dscene, table);
-
-		kbssrdf->table_offset = (int)bssrdf_table_offset;
-		kbssrdf->num_attempts = BSSRDF_MAX_ATTEMPTS;
-	}
-	else if(!has_surface_bssrdf && bssrdf_table_offset != TABLE_OFFSET_INVALID) {
-		scene->lookup_tables->remove_table(bssrdf_table_offset);
-		bssrdf_table_offset = TABLE_OFFSET_INVALID;
-	}
-
 	/* blackbody lookup table */
 	KernelBlackbody *kblackbody = &dscene->data.blackbody;
 	
@@ -289,11 +270,6 @@
 
 void ShaderManager::device_free_common(Device *device, DeviceScene *dscene, Scene *scene)
 {
-	if(bssrdf_table_offset != TABLE_OFFSET_INVALID) {
-		scene->lookup_tables->remove_table(bssrdf_table_offset);
-		bssrdf_table_offset = TABLE_OFFSET_INVALID;
-	}
-
 	if(blackbody_table_offset != TABLE_OFFSET_INVALID) {
 		scene->lookup_tables->remove_table(blackbody_table_offset);
 		blackbody_table_offset = TABLE_OFFSET_INVALID;

Modified: trunk/blender/intern/cycles/render/shader.h
===================================================================
--- trunk/blender/intern/cycles/render/shader.h	2013-10-11 23:14:01 UTC (rev 60692)
+++ trunk/blender/intern/cycles/render/shader.h	2013-10-12 00:08:31 UTC (rev 60693)
@@ -141,7 +141,6 @@
 	typedef unordered_map<ustring, uint, ustringHash> AttributeIDMap;
 	AttributeIDMap unique_attribute_id;
 
-	size_t bssrdf_table_offset;
 	size_t blackbody_table_offset;
 };
 




More information about the Bf-blender-cvs mailing list