Cycles: merge of changes from tomato branch.
Regular rendering now works tiled, and supports save buffers to save memory during render and cache render results. Brick texture node by Thomas. http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/Textures#Brick_Texture Image texture Blended Box Mapping. http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/Textures#Image_Texture http://mango.blender.org/production/blended_box/ Various bug fixes by Sergey and Campbell. * Fix for reading freed memory in some node setups. * Fix incorrect memory read when synchronizing mesh motion. * Fix crash appearing when direct light usage is different on different layers. * Fix for vector pass gives wrong result in some circumstances. * Fix for wrong resolution used for rendering Render Layer node. * Option to cancel rendering when doing initial synchronization. * No more texture limit when using CPU render. * Many fixes for new tiled rendering.
This commit is contained in:
@@ -67,12 +67,11 @@ class RenderBuffers {
|
||||
public:
|
||||
/* buffer parameters */
|
||||
BufferParams params;
|
||||
|
||||
/* float buffer */
|
||||
device_vector<float> buffer;
|
||||
/* random number generator state */
|
||||
device_vector<uint> rng_state;
|
||||
/* mutex, must be locked manually by callers */
|
||||
thread_mutex mutex;
|
||||
|
||||
RenderBuffers(Device *device);
|
||||
~RenderBuffers();
|
||||
@@ -80,7 +79,7 @@ public:
|
||||
void reset(Device *device, BufferParams& params);
|
||||
|
||||
bool copy_from_device();
|
||||
bool get_pass(PassType type, float exposure, int sample, int components, float *pixels);
|
||||
bool get_pass_rect(PassType type, float exposure, int sample, int components, float *pixels);
|
||||
|
||||
protected:
|
||||
void device_free();
|
||||
@@ -105,8 +104,6 @@ public:
|
||||
bool transparent;
|
||||
/* byte buffer for tonemapped result */
|
||||
device_vector<uchar4> rgba;
|
||||
/* mutex, must be locked manually by callers */
|
||||
thread_mutex mutex;
|
||||
|
||||
DisplayBuffer(Device *device);
|
||||
~DisplayBuffer();
|
||||
@@ -124,6 +121,28 @@ protected:
|
||||
Device *device;
|
||||
};
|
||||
|
||||
/* Render Tile
|
||||
* Rendering task on a buffer */
|
||||
|
||||
class RenderTile {
|
||||
public:
|
||||
int x, y, w, h;
|
||||
int start_sample;
|
||||
int num_samples;
|
||||
int sample;
|
||||
int resolution;
|
||||
int offset;
|
||||
int stride;
|
||||
|
||||
device_ptr buffer;
|
||||
device_ptr rng_state;
|
||||
device_ptr rgba;
|
||||
|
||||
RenderBuffers *buffers;
|
||||
|
||||
RenderTile();
|
||||
};
|
||||
|
||||
CCL_NAMESPACE_END
|
||||
|
||||
#endif /* __BUFFERS_H__ */
|
||||
|
Reference in New Issue
Block a user