Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-10-23Cleanup: spellingCampbell Barton
2014-10-22Cycles: Code cleanup -- use bitshifts instead of hardcoded constantsSergey Sharybin
This way it's easier to extend bitfields and see when we start running out of free bits. Plus added brief description of what SD_VOLUME_CUBIC flag means.
2014-10-22Cycles: Expose volume voxel data interpolation to the interfaceSergey Sharybin
It is per-material setting which could be found under the Volume settings in the material and world context buttons. There could still be some code-wise improvements, like using variable-size macro for interp3d instead of having interp3d_ex to which you can pass the interpolation method.
2014-10-22Cycles: Implement tricubic b-spline interpolation for CPU texture_imageSergey Sharybin
This is the first step towards supporting cubic interpolation for voxel data (such as smoke and fire). It is not epxosed to the interface at all yet, this is to be done soon after this change.
2014-10-16Cycles: Implement an area preserving parameterization sampling for area lampsSergey Sharybin
Replace old code for area lamps which was more like incorrect with more correct one using the following paper as a reference: Carlos Urena et al. An Area-Preserving Parametrization for Spherical Rectangles. https://www.solidangle.com/research/egsr2013_spherical_rectangle.pdf Implementation is straight from the paper, currently the rectangle constants are calculated for each of the samples. Ideally we need to pre-calculate them. Some comparison images are available there http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.73/Cycles Reviewers: brecht, juicyfruit Subscribers: dingto, ton Differential Revision: https://developer.blender.org/D823
2014-10-15Fix T42160: CUDA error: ILLEGAL_ADDRESS in cuCtxSynchronize()Sergey Sharybin
This is so-called GPU limitation boundary hit, told compiler to NOT include volume bound function, otherwise some real weird things used to happen. We actually might want to do the same for CPU, inlining everything is not the way to get fastest code.
2014-10-13Fix embarrassing typo...Thomas Dinges
2014-10-12Cycles: Add CUDA support for sm_32 (Tegra K1, Jetson TK1).Thomas Dinges
Fix T42174.
2014-10-12Cleanup: Typo fix for Blackbody variable, had different naming in the ↵Thomas Dinges
comments and also in OSL.
2014-10-11Cycles: set hit values in-orderCampbell Barton
2014-10-10Fix typo breaking compilation with rather strict flags (does not like ↵Bastien Montagne
implicit double to float conversion).
2014-10-10Cycles: Use a bit better approach for erfinv()Sergey Sharybin
Also reduce number of branching and multiplications a bit by inlining the branches. This gives an unmeasurable speedup, which is in case of BMW is about 2% here.
2014-10-09Cycles: Remove redundant float4->float3 conversionSergey Sharybin
Not as if it gives noticeable changes render-time, but it's just weird to convert float4 to float 3 to just access individual x/y/z components. Plus some compilers might be more stupid than GCC and don't optimize this out well.
2014-10-08Cycles: enable double promotion warning /w gccCampbell Barton
2014-10-08Cycles: correct math wrappersCampbell Barton
include the parens around value before cast, in some cases was causing double/float promotion by only casting the left value.
2014-10-07Fix T42106: Box image mapping shows black triangles if they point to a ↵Sergey Sharybin
corner and blend is 0 After discussion with cambo here we decided it's better to choose arbitrary side of the box (in this case it's X-axis) and use image from it. That's better than doing a blackness. P.S. This is literally a corner case anyway.
2014-10-07Cleanup: warningsCampbell Barton
2014-10-06Cycles: Fix for camera-in-volume detectionSergey Sharybin
Ray actually should have infinite length, so we can detect camera in a volume which is bigger that the far clipping of the camera. This might also give some speedup (wouldn't expect much tho) because we don't need to re-calculate ray direction and length after every bounce now.
2014-10-06Cycles: Optimize of volume stack update when sampling SSSSergey Sharybin
basically we skip all non-volume objects now in the volume stack function. Depending on the show it might give some percent of speedup. Most of the speedup would be gained in the scenes when having SSS object intersecting the volume and taking a reasonable amount of frame space.
2014-10-06Cycles: Fix for viewport rendering with debug enabledSergey Sharybin
2014-10-06Cycles: Workaround dead-slow expf() on 64bit linuxSergey Sharybin
Single precision exponent on 64bit linux tends to be order of magnitude slower than double precision version even with single<->double precision conversion. Some feedback in the mailing lists also suggests that logf() is also slow, but this i didn't confirm here in the studio yet. Depending on the shader setup it gives ~3% with the secret agent shot and up to around 15% with the bmw scene here.
2014-10-06Cycles: Move system headers include to the top of the filesSergey Sharybin
This is a good practice to do anyway, plus it'll help with the upcoming change.
2014-10-05Fix T42081, OpenCL supports float3 since the 1.1 specification, not sure why ↵Thomas Dinges
we needed this.
2014-10-05Cycles: Forgot to set WITH_CYCLES_DEBUG for OSL kernelSergey Sharybin
2014-10-05Cycles: __KERNEL_DEBUG__ wasn't set for compile-time kernelsSergey Sharybin
2014-10-05Cycles: Make OpenCL folks happy to use __KERNEL_DEBUG__Sergey Sharybin
Quite straightforward change, the only annoying thing is that we can't use indentation for include directive just because of the way headers inlineing works for OpenCL. Might do smarter job in path_source_replace_includes() but don't want to spend time on this yet.
2014-10-05Cycles: Fix for debug kernel not working with CUDASergey Sharybin
2014-10-05Cycles / CUDA: Change inline rules for BVH intersection functions.Thomas Dinges
* On sm_30 and above there is no change (was not inlined already before), this just fixes a speed regression from yesterday. 6359c36ba407 * On sm_2x (tested with sm_21), I get a nice 8% speedup in the bmw scene with this. As a bonus, cubin compilation time and memory usage is significantly reduced. Regular cubin size went from 2.5MB to 2.0MB, Experimental one from 3.8MB to 2.5MB.
2014-10-04Cycles: Fix wrong ifdef check around shadows record allSergey Sharybin
2014-10-04Cycles: Add support for debug passesSergey Sharybin
Currently only summed number of traversal steps and intersections used by the camera ray intersection pass is implemented, but in the future we will support more debug passes which would help checking what things makes the scene slow. Example of such extra passes could be number of bounces, time spent on the shader tree evaluation and so. Implementation from the Cycles side is pretty much straightforward, could only mention here that it's a build-time option disabled by default. From the blender side it's implemented as a PASS_DEBUG with several subtypes possible. This way we don't need to create an extra DNA pass type for each of the debug passes, saving us a bits. Reviewers: campbellbarton Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D813
2014-10-04Cycles: Remove a workaround for Titan GPUs, not needed anymore with the ↵Thomas Dinges
latest CUDA compiler.
2014-10-03Cycles, some tweaks to scene_intersect_shadow_all()Thomas Dinges
* Function returns a bool, not an uint. * Remove GPU ifdefs, this is CPU only due to malloc / qsort.
2014-10-03Cleanup: Remove some unused / unreferenced functions for perdiodic perlin noise.Thomas Dinges
2014-10-03Cycles / OSL: Make the signed/unsigned Perlin parameter more self explaining.Thomas Dinges
2014-10-03Cycles: Fix OpenCL compile after new Volume BVH introduction and add some ↵Thomas Dinges
comments.
2014-10-03Cycles: Missing volume traversal header in cmake for GPU compilation.Thomas Dinges
2014-10-03Cycles: Remove Westin closure.Thomas Dinges
Was hooked up last year for testing purposes, as we already had some code for it, but the closure itself is not really good nor really useful, so let's remove it.
2014-10-03Cleanup: Spelling.Thomas Dinges
2014-10-03Cycles: Use more accurate implementation of erf() and erfinv()Sergey Sharybin
This functions are orders of magnitude more accurate than the old ones, and they're around the same complexity to compute.
2014-10-03Cycles: Implement preliminary test for volume stack update from SSSSergey Sharybin
This adds an AABB collision check for objects with volumes and if there's a collision detected then the object will have SD_OBJECT_INTERSECTS_VOLUME flag. This solves a speed regression introduced by the fix for T39823 by skipping volume stack update in cases no volumes intersects the current SSS object.
2014-10-03Cycles: Speedup of kernel side camera-in-volume detectionSergey Sharybin
The idea is to only count intersections with objects which has volumetric shader and ignore all other objects. This is probably as fast as we can go without involving some forth level magic.
2014-09-29Cleanup: styleCampbell Barton
2014-09-28Cycles: Correct object flags bitfield, was missing negative scale thereSergey Sharybin
It's quite a few of circumstances to be met to hit the case when render wouldn't be correct. Better to be ported to the final release.
2014-09-28Cycles: Avoid temp variable in camera-in-volume checkSergey Sharybin
Was a left-over from some experiments, no need it with the current implementation, and likely wouldn't need in the future.
2014-09-28Cycles: Cleanup of the SSS volume stack update codeSergey Sharybin
Was a leftover after the changed scene_intersect() which used to be ifdefed depending on the __HAIR__ in the original patch.
2014-09-26Cycles: Keep STACK_MAX_HITS private in kernel_shadowSergey Sharybin
This way adding record_all for other things becomes easier and doesn't lead to naming conflicts.
2014-09-26Code style.Thomas Dinges
2014-09-25Cycles: Make CUDA backend aware of sm_52 (Maxwell).Thomas Dinges
In order to compile the new kernel you need to specify sm_52 in SCons / CMake, and use CUDA Toolkit 6.5.19, from here: https://developer.nvidia.com/cuda-downloads-geforce-gtx9xx Note: sm_52 is not enabled per default yet, so it won't be bundled with the Buildbot builds. That will be addressed later.
2014-09-25Cycles: Add support for cameras inside volumeSergey Sharybin
Basically the title says it all, volume stack initialization now is aware that camera might be inside of the volume. This gives quite noticeable render time regressions in cases camera is in the volume (didn't measure them yet) because this requires quite a few of ray-casting per camera ray in order to check which objects we're inside. Not quite sure if this might be optimized. But the good thing is that we can do quite a good job on detecting whether camera is outside of any of the volumes and in this case there should be no time penalty at all (apart from some extra checks during the sync state). For now we're only doing rather simple AABB checks between the viewplane and volume objects. This could give some false-positives, but this should be good starting point. Need to mention panoramic cameras here, for them it's only check for whether there are volumes in the scene, which would lead to speed regressions even if the camera is outside of the volumes. Would need to figure out proper check for such cameras. There are still quite a few of TODOs in the code, but the patch is good enough to start playing around with it checking whether there are some obvious mistakes somewhere. Currently the feature is only available in the Experimental feature sey, need to solve some of the TODOs and look into making things faster before considering the feature is ready for the official feature set. This would still likely happen in current release cycle. Reviewers: brecht, juicyfruit, dingto Differential Revision: https://developer.blender.org/D794
2014-09-25Fix T39823: SSS scatter doesn't update volume stack, causing shading artifactsSergey Sharybin
Basically the title says it all, we need to update volume stack when doing ray scatter for SSS. This leads to speed regressions in cases scene does have both volume and SSS (performance in case there's no SSS or no volume should be the same). We might try optimizing kernel_path_subsurface_update_volume_stack() a bit by either recording all intersections or using some more appropriate visibility flags. Reviewers: brecht, juicyfruit, dingto Differential Revision: https://developer.blender.org/D795