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:
@@ -75,6 +75,7 @@ Camera::Camera()
|
||||
|
||||
need_update = true;
|
||||
need_device_update = true;
|
||||
previous_need_motion = -1;
|
||||
}
|
||||
|
||||
Camera::~Camera()
|
||||
@@ -140,8 +141,17 @@ void Camera::update()
|
||||
|
||||
void Camera::device_update(Device *device, DeviceScene *dscene, Scene *scene)
|
||||
{
|
||||
Scene::MotionType need_motion = scene->need_motion();
|
||||
|
||||
update();
|
||||
|
||||
if (previous_need_motion != need_motion) {
|
||||
/* scene's motion model could have been changed since previous device
|
||||
* camera update this could happen for example in case when one render
|
||||
* layer has got motion pass and another not */
|
||||
need_device_update = true;
|
||||
}
|
||||
|
||||
if(!need_device_update)
|
||||
return;
|
||||
|
||||
@@ -159,7 +169,6 @@ void Camera::device_update(Device *device, DeviceScene *dscene, Scene *scene)
|
||||
kcam->worldtocamera = transform_inverse(cameratoworld);
|
||||
|
||||
/* camera motion */
|
||||
Scene::MotionType need_motion = scene->need_motion();
|
||||
kcam->have_motion = 0;
|
||||
|
||||
if(need_motion == Scene::MOTION_PASS) {
|
||||
@@ -226,6 +235,7 @@ void Camera::device_update(Device *device, DeviceScene *dscene, Scene *scene)
|
||||
kcam->cliplength = (farclip == FLT_MAX)? FLT_MAX: farclip - nearclip;
|
||||
|
||||
need_device_update = false;
|
||||
previous_need_motion = need_motion;
|
||||
}
|
||||
|
||||
void Camera::device_free(Device *device, DeviceScene *dscene)
|
||||
|
||||
Reference in New Issue
Block a user