[Bf-blender-cvs] [4092266] bake-cycles: Cycles-Bake: 1st round of code-review

Dalai Felinto noreply at git.blender.org
Wed Apr 23 02:47:37 CEST 2014


Commit: 4092266973ec2273ccb5b7c063ae1f187f47a222
Author: Dalai Felinto
Date:   Sat Mar 22 19:18:24 2014 -0300
https://developer.blender.org/rB4092266973ec2273ccb5b7c063ae1f187f47a222

Cycles-Bake: 1st round of code-review

For the individual commits:
https://github.com/dfelinto/blender-git/tree/bake-cycles-0.1

Documentation:
http://wiki.blender.org/index.php/User:Dfelinto/CyclesBaking

Open Issues:
https://github.com/dfelinto/blender-git/issues?labels=bake-cycles&page=1&state=open

Supported Features:
------------------
* Margin
* User Interface (no more need to fiddle with Python scripts)
* Selected to Active
* Cage Extrusion
* Custom Cage
* File Formats (save as PNG, JPG, OpenEXR, Tiff, Targa and BMP)
* Color Depth/Mode: RGB/RGBA - 8/16/32
* Normal swizzle (change the axis that gets mapped to RGB)
* Normal space (save as tangent, world, object)

Supported Passes:
-----------------
Data Passes
* Normal
* UV
* Diffuse/Glossy/Transmission/Subsurface/Emit Color

Light Passes
* AO
* Combined
* Shadow
* Diffuse/Glossy/Transmission/Subsurface/Emit Direct/Indirect
* Environment

Implementation Notes:
---------------------
Baking for Cycles was implemented in two fronts:

In Blender we created a new operator that will try to bake using the current engine.
So far only Cycles has this implemented, but other engines (even the Blender Internal) could go through this API/pipeline.
The operator is responsible for the image handling, normal space
transformation, populate the UVs, loop over faces, ...

In Cycles we extended the baking functionality available for environment
and displacement for the other render passes (not all of them since some
of them doesn't make sense for baking).

The API is simple. Blender send a populated array of BakePixels to the
renderer, and gets back an array of floats with the result.

BakePixel is tjhe following struct:

struct BakePixel {
    int primitive_id;
    float u, v;
    float dudx, dudy;
    float dvdx, dvdy;
};

intern/cycles/blender/addon/__init__.py
intern/cycles/blender/addon/engine.py
intern/cycles/blender/addon/properties.py
intern/cycles/blender/addon/ui.py
intern/cycles/blender/blender_python.cpp
intern/cycles/blender/blender_session.cpp
intern/cycles/blender/blender_session.h
intern/cycles/kernel/kernel_accumulate.h
intern/cycles/kernel/kernel_displace.h
intern/cycles/kernel/kernel_path.h
intern/cycles/kernel/kernel_types.h
intern/cycles/render/CMakeLists.txt
intern/cycles/render/bake.cpp
intern/cycles/render/bake.h
intern/cycles/render/film.cpp
intern/cycles/render/integrator.cpp
intern/cycles/render/integrator.h
intern/cycles/render/scene.cpp
intern/cycles/render/scene.h
intern/cycles/render/session.cpp
intern/cycles/render/session.h
source/blender/blenkernel/BKE_mesh.h
source/blender/blenkernel/intern/mesh.c
source/blender/editors/object/CMakeLists.txt
source/blender/editors/object/object_bake.c
source/blender/editors/object/object_bake_new.c
source/blender/editors/object/object_intern.h
source/blender/editors/object/object_ops.c
source/blender/makesdna/DNA_scene_types.h
source/blender/makesrna/RNA_enum_types.h
source/blender/makesrna/intern/rna_main_api.c
source/blender/makesrna/intern/rna_render.c
source/blender/makesrna/intern/rna_scene.c
source/blender/render/CMakeLists.txt
source/blender/render/extern/include/RE_bake.h
source/blender/render/extern/include/RE_engine.h
source/blender/render/intern/source/bake.c
source/blender/render/intern/source/bake_new.c
source/blender/render/intern/source/external_engine.c
source/blender/windowmanager/WM_api.h

===================================================================



===================================================================

diff --cc intern/cycles/kernel/kernel_path.h
index 0c4d15d,35d414a..e045d91
--- a/intern/cycles/kernel/kernel_path.h
+++ b/intern/cycles/kernel/kernel_path.h
@@@ -1152,7 -1158,7 +1158,7 @@@ ccl_device float4 kernel_branched_path_
  				if(result == VOLUME_PATH_SCATTERED) {
  					/* todo: use all-light sampling */
  					if(kernel_path_integrate_scatter_lighting(kg, rng, &volume_sd, &tp, &ps, &L, &pray, num_samples_inv)) {
--						kernel_path_indirect(kg, rng, pray, buffer, tp*num_samples_inv, num_samples, ps, &L);
++						kernel_path_indirect(kg, rng, pray, tp*num_samples_inv, num_samples, ps, &L);
  
  						/* for render passes, sum and reset indirect light pass variables
  						 * for the next samples */




More information about the Bf-blender-cvs mailing list