Commit Graph

494 Commits

Author SHA1 Message Date
c810e417bd Fix #32513: incorrect color management in Material draw mode for Cycles. 2012-09-09 11:04:49 +00:00
adea12cb01 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.
2012-09-04 13:29:07 +00:00
a71b160184 fix for building on msvc2008 (also style cleanup) 2012-09-04 01:23:50 +00:00
1f64aecb30 Fix for usage of un-initialized memory.
Checked by Brecht when were in Blender Institute.

Discovered when was looking into #32296: Node Texture - Node Material - GLSL Viewport rendering issue
2012-09-03 13:17:21 +00:00
b25ca62f20 Fix #32404: GLSL normal maps using float images were incorrectly getting
color managed.
2012-08-30 17:42:04 +00:00
8bd7c3fba2 change curve evaluation functions never to modify curve data (ensures thread safety), now initializations has to be done outside evaluation. 2012-08-21 14:43:51 +00:00
a6d1b955ab Moving more duplicate code from GPU_create_gl_tex_compressed() and BL_Texture::InitGLCompressedTex() into GPU_Upload_dxt_texture(). This reduces code duplication and ensures that both paths are using the same settings. 2012-08-18 03:32:28 +00:00
b96c622015 style cleanup 2012-08-11 22:12:32 +00:00
be4ae581ff simplified data_to_c macro in cmake 2012-08-11 13:32:19 +00:00
81272e28a0 generate glsl shaders c files at build time. 2012-08-11 13:01:44 +00:00
9ff4fa6671 style cleanup 2012-08-04 12:30:16 +00:00
6d8fb7c0e7 Tweak to commit related to non-power-of-two textures, some cards claim to
support this but actually don't, so use the function that checks for that.
2012-07-31 15:05:14 +00:00
7755873771 Fix for [#27484] "Run-time command line options don't work in Multi-texture mode." reported by Josiah Lane (solarlune). The -g nomipmap = 1 option only changed the mipmapping option for bf_gpu, which BL_Texture wasn't checking. 2012-07-29 05:59:03 +00:00
9c4380383c Fix #32138: material trancpareny setting 2012-07-26 08:57:41 +00:00
37246b3ca1 BGE: Bringing over the dynamic lamp properties fixes from Cucumber (thanks to Daniel Stokes). This means the following KX_LightObject properties now have support when using GLSL materials (in addition to those already supported):
* distance
  * lin_attenuation
  * quad_attenuation
  * spotsize
  * spotblend
2012-07-23 20:24:35 +00:00
32cf7fcdb1 code cleanup: spelling 2012-07-16 23:23:33 +00:00
831ae18622 Scaling non-power-of-two (NPOT) textures to powers of two is really time consuming and not necessary on graphics cards that can support NPOT textures. So, if the graphics card has NPOT texture support, don't bother scaling. If this patch causes issues, it can always be reverted and applied to Swiss instead. 2012-07-10 19:23:57 +00:00
cfb7aee017 style cleanup 2012-07-07 22:51:57 +00:00
4d2a6a8e21 Spellfixes: colour -> color 2012-07-04 12:19:50 +00:00
7ef55c62f3 A little bit of cleanup for the new DXT code:
* Using TRUE/FALSE instead of 1/0
  * Checking to make sure GL_EXT_texture_compression_s3tc is supported
  * Removing some debug error checking
2012-07-01 02:47:34 +00:00
39ca3146ff fix for some build warnings. 2012-06-30 16:56:23 +00:00
5a859c6ba3 GPU_upload_dxt_texture failed to compile if WITH_DDS was not defined 2012-06-30 10:31:25 +00:00
436f02ab9c Finally committing support for compressed textures on the GPU (DDS+DXT). This patch started out as a patch by me, then cleaned up by Kupoman during his work on Cucumber.
One important thing to keep in mind when using this feature is that you'll need to flip your textures vertically (both the GIMP and Photoshop DDS tools I've seen have support for this on export). This is a quirk in using a texture format originally made for DirectX/DirectDraw, and flipping the compressed data is a real headache. Another quick fix for this issue is to change the Y value for the Size in the Mapping panel in the Texture properties to -1 (default is 1).
2012-06-30 04:34:34 +00:00
a744fed46c style cleanup 2012-06-20 16:43:48 +00:00
f5f25b81e8 style cleanup:
also fix for building ghost test and fix double free in one of the tests
2012-06-17 09:58:26 +00:00
854502d2e3 Add user preference "GPU Mipmap Generation" under the System/OpenGL
subpanel to calculate image mipmapping on the GPU, saving upload and
calculation time. Default is off just in case.
2012-06-11 16:23:10 +00:00
68c365e2f0 Index: source/blender/gpu/intern/gpu_draw.c
===================================================================
--- source/blender/gpu/intern/gpu_draw.c	(revision 47568)
+++ source/blender/gpu/intern/gpu_draw.c	(working copy)
@@ -230,11 +230,12 @@
 	Image *ima, *curima;
 
 	int domipmap, linearmipmap;
+	int texpaint; /* store this so that new images created while texture painting won't be set to mipmapped */
 
 	int alphablend;
 	float anisotropic;
 	MTFace *lasttface;
-} GTS = {0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 1, 0, -1, 1.f, NULL};
+} GTS = {0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 1, 0, 0, -1, 1.f, NULL};
 
 /* Mipmap settings */
 
@@ -256,7 +257,7 @@
 
 static int gpu_get_mipmap(void)
 {
-	return GTS.domipmap;
+	return GTS.domipmap && !GTS.texpaint;
 }
 
 static GLenum gpu_get_mipmap_filter(int mag)
@@ -730,6 +731,8 @@
 	if (!GTS.domipmap)
 		return;
 
+	GTS.texpaint = !mipmap;
+
 	if (mipmap) {
 		for (ima=G.main->image.first; ima; ima=ima->id.next) {
 			if (ima->bindcode) {
2012-06-08 13:06:06 +00:00
d5032657ed style cleanup 2012-06-06 22:38:39 +00:00
cb0b3558af style cleanup 2012-06-05 22:12:17 +00:00
0adf252c9b Fix #31593: Every time I switch between edit and object mode, it crashes
Crash was caused by incorrect restoring OpenGL context due to some
weird bit operations used to indicate whether stuff like color arrays
is initialized resulting in some unpredictable results on different
platforms and drivers.
2012-06-05 08:41:53 +00:00
5189356d58 style cleanup 2012-06-04 20:11:09 +00:00
032d83ecc4 style cleanup: defines with braces 2012-05-27 20:13:59 +00:00
57c292daf0 style cleanup 2012-05-25 09:51:53 +00:00
19dd66cf3b 3D View: add Backface Culling option, to hide faces when seen from the back side,
found in the Display panel.

Patch by Simon Kirk and Irie Shinsuke, refactored to also work for non-mesh objects
and avoid globals.
2012-05-25 09:26:47 +00:00
da710b3e14 style cleanup: brace placement/newlines 2012-05-24 16:35:45 +00:00
dab1d8e487 style cleanup 2012-05-22 22:03:41 +00:00
931146731d Fix memory leak when deleting all vertices from mesh with certain modifiers (bevel and array among them) and VBO are enabled. 2012-05-22 17:33:58 +00:00
72f38b4f09 style cleanup: brace placement. 2012-05-22 06:29:46 +00:00
c3e1fce775 Cycles: add Object Info node, with outputs object location, object/material
pass index, and a random number unique to the instance of the object.

This can be useful to give some variation to a single material assigned to
multiple instances, either manually controlled through the object index, based
on the object location, or randomized for each instance. 

http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/More#Object_Info
2012-05-21 12:52:28 +00:00
deac41506f Fix #31511: GLSL preview is much darker than F12 results
A problem caused by Harmony branch code. A value was being set improperly for the GLSL shader.
2012-05-20 21:19:55 +00:00
2d2d36fe3b code cleanup:
- style - multi-line ifs move braces onto new lines.
- iterators - convert some to macros, other split up and move brace.
2012-05-20 19:49:27 +00:00
af3e348430 code cleanup: use TRUE/FALSE rather then 1/0 for better readability, also replace do prefix with do_ for bool vars. 2012-05-19 13:28:19 +00:00
578864180b Fix related to #31446: cycles glsl error with empty image texture node. 2012-05-18 13:30:34 +00:00
9dd981a440 style cleanup: block comments 2012-05-16 23:37:23 +00:00
ed33320e3f Code cleanup: simplify standard GHash creation.
Added four new functions as shortcuts to creating GHashes that use the
standard ptr/str/int/pair hash and compare functions.

GHash *BLI_ghash_ptr_new(const char *info);
GHash *BLI_ghash_str_new(const char *info);
GHash *BLI_ghash_int_new(const char *info);
GHash *BLI_ghash_pair_new(const char *info);

Replaced almost all occurrences of BLI_ghash_new() with one of the
above functions.
2012-05-16 00:51:36 +00:00
ce17c35240 style cleanup: mainly sculpt/whitespace 2012-05-11 08:05:47 +00:00
d35d0e38ce Add mask-drawing support to GPU_Buffers.
This is the last commit of the sculpt masking merge. Documentation:
http://wiki.blender.org/index.php/User:Nicholasbishop/PaintMasks

Thanks to Brecht for reviewing!

* For VBO, add color to the VertexBufferFormat structure as three
  unsigned bytes. Since mask elements are scalar the three color
  components are identical to eachother, but the fixed-function OpenGL
  pipeline requires colors to be either three or four components.

* For the same reason, multires VBO drawing now copies into the
  VertexBufferFormat format as well.

* Regression: material colors will not show up correctly now, masks
  colors are overriding. Not sure how to fix this nicely (would be
  much easier to fix if drawing with vertex shaders.)

* Also, masks will only draw PBVH drawing, so only 'solid' drawing
  will work correctly with masks.
2012-05-10 20:36:34 +00:00
3ee0305ebb Use VertexBufferFormat for multires VBO. 2012-05-10 20:36:24 +00:00
f751d0f6ae Replace hardcoded DMGridData structure with CCGElem/CCGKey.
* Changes to DerivedMesh interface: DMGridData has been removed,
  getGridData() now returns an array of CCGElem pointers. Also added
  getGridKey() to initialize a CCGKey (implemented only by
  CCGDerivedMesh.)

* PBVH: added BLI_pbvh_get_grid_key().

* A lot of code is affected, but mainly is just replacing
  DMGridData.co, DMGridData.no, and sizeof(DMGridData) with the
  CCG_*_elem functions, removing the reliance on grid elements of
  exactly six floats.
2012-05-10 20:33:09 +00:00
a2ed2b36f3 Fix for recent changes in glsl
smooth seems to be a keyword in glsl and using it as a name for function property caused issues.
2012-05-09 10:14:01 +00:00