Commit Graph

54544 Commits

Author SHA1 Message Date
94d4b31323 Math Lib: mat3_to_eulo2 & mat3_to_eul2 mixed float/double differently
replace sqrt with hypotf to avoid precision loss instead
2014-06-14 17:10:46 +10:00
019a8bc23b Quiet warning in Cycles 2014-06-14 17:00:15 +10:00
29e8c46e30 Rename 'Extend Vertex' to be clear it operates on many vertices 2014-06-14 16:27:46 +10:00
788f4858d7 Comment unused macro 2014-06-14 16:27:13 +10:00
746f0ad257 Polyfill2d: use kd-tree
Simple search for intersections became slow for larger concave ngons (100+)
Tested to work with ngons up to 75k sides, performance is approx ~6x faster then scanfill.

This is a 2D version of BLI_kdtree with modifications:
- nodes can be removed
- an index -> node map is stored (especially for tessellation)
2014-06-14 08:27:19 +10:00
19b1da2b7b Polyfill2d: avoid calculating polygon winding (its known in all cases) 2014-06-14 08:21:52 +10:00
7529e36f49 Polyfill2d: Switch directions on concave triangles
Better topology and minor speedup
2014-06-14 08:21:51 +10:00
f0f45eea2e Polyfill2d: replace array with linklist, faster resizing
approx 4.0x speedup
2014-06-14 08:21:51 +10:00
0ce3a755f8 Cycles: Add support for uchar4 attributes.
* Added support for uchar4 attributes to Cycles' attribute system.
* This is used for Vertex Colors now, which saves some memory (4 unsigned characters, instead of 4 floats).
* GPU Texture Limit on sm_20 and sm_21 decreased from 95 to 94, because we need a new texture for the uchar4 attributes. This is no problem for sm_30 or newer.

Part of my GSoC 2014.
2014-06-13 23:40:54 +02:00
7e20583688 Attempt to fix sign conversion error happening on buildbot 2014-06-14 03:35:22 +06:00
6cd5954246 Implement GLSL code for XYZ nodes. 2014-06-13 23:23:55 +02:00
2c105dd17d Follow up for previous commit: need to tweak args for scons as well 2014-06-14 03:10:30 +06:00
1d982eada1 OSX: update codesigning rules to 2.71 2014-06-13 23:08:49 +02:00
b48d0a6254 Cycles: Fix compilation error of AVX2 kernel with GCC/Clang 2014-06-14 03:02:57 +06:00
be182d9704 Code cleanup. 2014-06-13 22:26:20 +02:00
866c7fb6e6 Cycles: Add an AVX2 CPU kernel.
This kernel is compiled with AVX2, FMA3, and BMI compiler flags. At the moment only Intel Haswell benefits from this, but future AMD CPUs will have these instructions as well.

Makes rendering on Haswell CPUs a few percent faster, only benchmarked with clang on OS X though.

Part of my GSoC 2014.
2014-06-13 22:26:20 +02:00
Dalai Felinto
b4aa51f8d7 CMake fixup for bd43ac04 as indicated by Campbell Barton 2014-06-13 17:24:19 -03:00
3de3987ea1 Cycles: Add dedicated nodes to split/combine vectors.
This was already possible via the RGB nodes, but that seems weird.
2014-06-13 21:59:14 +02:00
49df707496 Cycles: Calculate face normal on the fly.
Instead of pre-calculation and storage, we now calculate the face normal during render.
This gives a small slowdown (~1%) but decreases memory usage, which is especially important for GPUs,
where you have limited VRAM.

Part of my GSoC 2014.
2014-06-13 21:59:13 +02:00
cd5e1ff74e Cycles Refactor: Add SSE Utility code from Embree for cleaner SSE code.
This makes the code a bit easier to understand, and might come in handy
if we want to reuse more Embree code.

Differential Revision: https://developer.blender.org/D482

Code by Brecht, with fixes by Lockal, Sergey and myself.
2014-06-13 21:59:12 +02:00
d0573ce905 Attempt to fix guardedalloc on OSX 2014-06-14 01:52:35 +06:00
Dalai Felinto
2b7ff6de06 Bake-API: increase cage extrusion/ray distance limit
Fix to include in 2.71 (asked via BlenderArtist)
2014-06-13 15:55:05 -03:00
ecb7905127 Resolve MSVC error 2014-06-14 04:46:37 +10:00
a87fb34eda Use advantage of SSE2 instructions in gaussian blur node
This gives around 30% of speedup for gaussian blur node.

Pretty much straightforward implementation inside the node
itself, but needed to implement some additional things:

- Aligned malloc. It's needed to load data onto SSE registers
  faster. based on the aligned_malloc() from Libmv with
  some additional trickery going on to support arbitrary
  alignment (this magic is needed because of MemHead).

  In the practice only 16bit alignment is supported because
  of the lack of aligned malloc with arbitrary alignment
  for OSX. Not a bit deal for now because we need 16 bytes
  alignment at this moment only. Could be tweaked further
  later.

- Memory buffers in compositor are now aligned to 16 bytes.
  Should be harmless for non-SSE cases too. just mentioning.

Reviewers: campbellbarton, lukastoenne, jbakker

Reviewed By: campbellbarton

CC: lockal

Differential Revision: https://developer.blender.org/D564
2014-06-14 00:38:07 +06:00
Dalai Felinto
b0708dd718 Bake-API: handle objects with no faces (fix T40601)
Also it has a better error handling for the BVHTree creation
Fix for 2.71
2014-06-13 14:37:59 -03:00
8957609f35 Sequencer: add support for grease pencil rendering in previews 2014-06-14 03:25:07 +10:00
f37c971878 Code cleanup: use ED_gpencil_ prefix for grease pencil 2014-06-14 02:54:17 +10:00
b96172cb05 UI: Add back ability to select a custom interface font 2014-06-14 02:32:38 +10:00
5861e528d6 New Editmesh Tool: Extend Vertex, (Alt+D) D512
Helps to easily add details to existing edges.

Similar to the rip tool it depends on cursor location to choose the edge to extend along.
2014-06-14 01:43:25 +10:00
cb7915fc60 Automatically generate blender.1 man page during build process
Patch T40418 by Lawrence D'Oliveiro
2014-06-14 01:19:58 +10:00
2ca497d84d Revert part of rB477f35 (error resolving conflict) 2014-06-14 01:06:49 +10:00
6c0926e802 Code cleanup: use const for mouse location arg 2014-06-14 00:47:12 +10:00
bf462149a6 BLI_bitmap: rename macros
- BLI_BITMAP_SET -> BLI_BITMAP_ENABLE
- BLI_BITMAP_CLEAR -> BLI_BITMAP_DISABLE
- BLI_BITMAP_GET -> BLI_BITMAP_TEST
- BLI_BITMAP_MODIFY -> BLI_BITMAP_SET
2014-06-14 00:47:12 +10:00
a427fa5261 BLI_bitmap: typecheck maco 2014-06-14 00:47:12 +10:00
341fd67fbf Add string escaping support for BLI_str_quoted_substrN 2014-06-14 00:47:12 +10:00
9db947df41 Editmesh: Replace SmallHash with GSet for MESH_OT_loop_to_region
There no reason to assume hash will be small in this case
2014-06-14 00:47:12 +10:00
365ff66987 GSet, GHash: Add BLI_gset_add, since its common to add members to a set
also rename BLI_edgeset_reinsert -> BLI_edgeset_add, in this case its the same.
2014-06-14 00:47:12 +10:00
8bd4b7361b BLF: use NONNULL & WARN_UNUSED_RESULT attrs & remove unneeded NULL check 2014-06-14 00:47:11 +10:00
0e085c637e BLI_kdtree: use UNLIKELY 2014-06-14 00:47:11 +10:00
f663c4f857 Code cleanup: UI, unnecessary float/int conversion 2014-06-14 00:47:11 +10:00
f3e4f42665 Code cleanup: remove hack for older GCC (4.2x and newer work without) 2014-06-14 00:47:11 +10:00
1962e21703 Code cleanup: remove redundant arg from ARRAY_LAST_ITEM 2014-06-14 00:47:11 +10:00
c3c04fe582 Code cleanup: remove redundant NULL check 2014-06-14 00:47:11 +10:00
477f35559c Code cleanup: reorder BKE_scene_use_new_shading_nodes checks last 2014-06-14 00:47:11 +10:00
b72eca435e Code cleanup: remove NULL check 2014-06-14 00:47:11 +10:00
a85b85101b Code cleanup: replace interp_v2_v2v2 with mid_v2_v2v2 2014-06-14 00:47:11 +10:00
953559a794 Code cleanup: avoid call to BLI_countlist 2014-06-14 00:47:10 +10:00
e3b47c1e03 Code cleanup: BLI_strdupn -> BLI_strdup 2014-06-14 00:47:10 +10:00
6a75ecda9b Code cleanup: spelling 2014-06-14 00:47:10 +10:00
baa0f0ee1a Cycles: Support builtin images for OSL shading backend
This means packed images and movies are now supported when using OSL
backend for material shading.

Uses special file name to distinguish whether image is builtin or not.
This part might become a bit smarted or optimized a bit, but it's good
enough with this implementation already.
2014-06-13 20:42:28 +06:00