Commit Graph

538 Commits

Author SHA1 Message Date
f7037737f3 BGE fix [#35472] Sun variance shadows does not work in game engine
The game engine had depth testing enabled when blurring the shadows which caused the blurring to not work properly.
2013-07-23 00:52:49 +00:00
04ea8c0ee8 remove the pointer from BLI_bitmap's typedef,
hides that an arg passed is really an array which may be modified by other functions.
2013-07-22 23:20:48 +00:00
017f09b9d4 BGE fix [#35195] Shadow Only lamps only work with Specular enabled
The way we do shadow only doesn't work well with colored shadows, though it does work if you apply enough light to the shadow.
2013-07-19 23:00:42 +00:00
b3ceab896a add some missing members to opengl debug print, also use a macro to avoid passing each arg twice. 2013-06-30 23:50:17 +00:00
c9add22b5e opengl debug info, make GPU_state_print() only show values in arrays that are set. (was print 32 values every time) 2013-06-30 23:30:21 +00:00
8245bdca2b quiet double promotion warning and some style cleanup 2013-06-25 20:52:33 +00:00
bd59bae651 Fix #34909 Texture paint mode does not correctly update when using
textures larger than 2048x2048.

Check if texture is over user preference or GPU limit in texture paint
mode and if it is, scale the partial redraw rectangle before uploading
to GPU. This should be faster than rescaling the whole texture.
2013-06-25 13:27:43 +00:00
37f5945188 style cleanup 2013-06-25 10:44:30 +00:00
553dd71efb Fix GLSL not showing shading properly on the backside of faces. Now it flips
the normal towards the viewer, seems to give consistent results with blender
internal, cycles, normal maps, etc.

Started from patch #32761 by Vitor Balbio, but changed it to do normal flipping
earlier so it solves all cases.
2013-06-24 13:46:34 +00:00
4a34d86f32 Fix #35848: render crash in background mode due to missing G.main. 2013-06-23 13:58:59 +00:00
ee8d353fdd Fix #35768: crash in with "free image textures" option and 3D viewport with textured
draw mode open. OpenGL texture free needs to happen in the main thread, but it was
freeing a copy of the image datablock. I can't understand how this code ever worked,
probably it never did.
2013-06-15 14:01:16 +00:00
cda5770160 code cleanup: also fix crash in GPU_state_print(). and confine to debug mode builds. 2013-06-13 11:59:28 +00:00
a6b505ef0b style cleanup 2013-06-06 06:02:46 +00:00
f18fad668f Fix textured draw mode + dyntopo crash fix to cover more cases. 2013-06-05 15:54:41 +00:00
aa96f0290a Obsessive Null Checking Compulsion case:
Textured draw mode + DynTopo crashed after recent specularity tweak.
2013-06-05 09:10:56 +00:00
4a7f37f6ed Fix #35602: VBO + dynamic topology sculpt did not show specularity. 2013-06-04 17:10:57 +00:00
225c5fee6b move BLO_sys_types.h -> BLI_sys_types.h (it had nothing todo with loading)
remove MEM_sys_types.h which was a duplicate.
2013-05-28 19:35:26 +00:00
ec8d277c64 BLI_math rename functions:
- mult_m4_m4m4 -> mul_m4_m4m4
- mult_m3_m3m4 -> mul_m3_m3m4

these temporary names were used to avoid problems when argument order was switched.
2013-05-26 18:36:25 +00:00
b068563ec8 Fix #35459: global texture coordinates not working with GLSL shaders. Got broken
in shader uniform binding optimizations in revision 55527.
2013-05-22 20:18:17 +00:00
13bde6645b code cleanup: remove callbacks only added to wrap MEM_freeN 2013-05-21 08:45:10 +00:00
359edc27d3 style cleanup 2013-05-11 01:06:01 +00:00
a9fb183901 rename BLI_ghashIterator_notDone() -> BLI_ghashIterator_done()
was renamed fairly recently but other similar iterators not negated
	like this, would prefer to keep it as it was
2013-05-08 12:58:11 +00:00
7753d1c49c Fix #34889: negative lights not working in glsl view and game engine.
Patch #35197 by Tyler Seacrest.
2013-05-03 05:24:01 +00:00
0408684763 avoid per-vertex mask layer lookups for dyntopo. 2013-05-02 06:09:05 +00:00
feeab1ad53 Fix #34997: when starting the game engine in one window and switching to a second
window, the game would stop drawing in the first and mess up the OpenGL state of
the second.

Also fixes glPushAttrib/glPopAttrib getting out of sync in some cases.
2013-04-18 16:28:39 +00:00
d2b14ed4f0 BGE: Adding mipmapping control to bge.render via bge.render.setMipmapping() and bge.render.getMipmapping(). 2013-04-14 00:40:24 +00:00
2f9b7410dc code cleanup: warnings + style 2013-04-13 00:43:49 +00:00
d0beabb642 Add function to query maximum texture size. Also, make texture upload
functions aware of this limit.
2013-04-12 17:56:07 +00:00
36094af7a3 Fix #34908: compressed DDS files did not display properly when their mipmap levels
did not go down to 1x1 image size, need to set GL_TEXTURE_MAX_LEVEL then.
2013-04-08 15:39:38 +00:00
966e86cd2d Fix for [#34754] "Revision 55527 provokes glitchy GLSL shadow map rendering" reported by Alain Ducharme. Per material uniforms and per object uniforms are now better separated. 2013-04-04 03:55:43 +00:00
0aada35e93 Fix #34788, #34744: GLSL error, #version line needs to be at the top of the shader
and this wasn't the case anymore after recent changes.
2013-04-02 16:37:31 +00:00
e8d532f1dd style cleanup 2013-03-31 03:28:46 +00:00
d15d78a33a style cleanup: osl and NULL pointer use, also correct sequencer gap operator id's 2013-03-27 20:27:07 +00:00
2006103a52 OpenGL: Moving the GPU_pass_update_uniforms() call from GPU_material_bind_uniforms() to GPU_material_bind(). This way, material specific uniforms don't need to be resent when sending object specific uniforms. This saves uniform update calls in the BGE where one material is bound and multiple objects can be drawn. This doesn't offer much in the way of performance, but it cleans up our OpenGL usage a bit. One test scene went from 8k OpenGL calls to 4k with just this one change. 2013-03-23 03:11:48 +00:00
9379dcb507 code cleanup: unused defines, shadowing and unintended enum-as-variable. 2013-03-22 14:31:03 +00:00
8655be437d code cleanup: use bool where values are true/false, for view3d and related functions. 2013-03-20 23:14:18 +00:00
01e9dae3dc code cleanup 2013-03-18 18:25:05 +00:00
2d21e6521f Fix: multisample viewport drawing didn't work well with selection or particle
brushes, due to issues with color coded drawing or slow/buggy reading from such
a buffer on some systems.

In case multisample is enabled now, it uses an offscreen buffer for such drawing,
which is not multisampled and so should not cause issues. This does mean there is
some extra GPU memory usage when multisample is enabled, and we could optimize
triple buffer to work together here somehow to share buffers, but it's better than
having selection not working.
2013-03-15 19:56:33 +00:00
bcec00dddc Fix #34649: texture size limit user preference not working. 2013-03-15 16:16:11 +00:00
962865d19f fix for 2 errors where the 2d arrays were used as 3d. (out of bounds read).
also minor code cleanup.
2013-03-13 18:10:05 +00:00
5ff0daf1ac Fix #34492: clipping border not working with GLSL/matcap and Nouveau drivers. 2013-03-13 18:00:13 +00:00
ee3d910f8f code cleanup: quiet struct gcc warnings, also use more conventional names for bmesh dissolve. 2013-03-12 08:50:02 +00:00
9fe858264c OpenGL: more work on fixed function lighting implementation as GLSL.
* Rename functions and move to own header.
* Add wrapper functions for glLight.
* Auto detect if we can use faster code for solid lighting.
* Various fixes for textured draw mode.
2013-03-10 15:38:23 +00:00
c36f20a7d2 style cleanup 2013-03-08 04:00:06 +00:00
53b7bc8f1f Change !BLI_ghashIterator_isDone to BLI_ghashIterator_notDone. It is
always used in that context so we can at least avoid reverting it twice
:p.
2013-03-06 20:55:04 +00:00
42ca1c8dcd Fix for image transparency backwards compatibility. Now the texture datablock has
a Use Alpha option again. This makes the case where you enabled Premultiply on the
image and disabled Use Alpha on the texture work again.

That's mostly useful when you have a straight alpha image file which has no useful
RGB colors in zero alpha regions (e.g. renders). Then sometimes you don't want to
use the alpha for the texture stack mixing, but you still want to multiply it into
the RGB channels to avoid a blocky transition into zero alpha regions.

This also removes the version patch that copied image datablocks because it's not
reliable and might be causing bug #34434. This does mean we are no longer backwards
compatible for cases where two different texture datablocks with Use Alpha enabled
and disabled where using the same image.
2013-03-04 13:18:14 +00:00
4643d61ffb OpenGL: implemenation of fixed function lighting as per pixel GLSL shaders. The
code is still unused, but the intention is to use this to solve the double sided
lighting problem on NVidia, and to make the materials work on OpenGL ES 2.0
eventually.

The code works and matches the fixed function lighting pretty much exactly, but
still needs optimizations. The actual integration in object draw will be
committed later when more fixing & testing, there's lots of different combinations
and unclear OpenGL state here.
2013-02-26 00:49:42 +00:00
525da1f872 Fix wrong alpha channel for OpenGL render results with transparent textures or
materials, the typical glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); blend
function does not give correct destination alpha.
2013-02-18 17:39:44 +00:00
7cb62127b3 Fix #34156: Spec. and Alpha Intensity OpenGL issue
Issue was caused by alpha pipeline cleanup: apparently depending on
use_alpha flag different channels for spec/alpha would be used.

Made it so talpha is computed from Image->ignore_alpha instead of
always considering to be TRUTH.

This is not so much trivial to understand what's going on here, but
it's not new issue. Anyway, if someone have got ideas how to improve
feedback here -- ideas are welcome! For now only regression is fixed.
2013-02-07 15:36:59 +00:00
89bda7899d style cleanup & some spelling 2013-02-03 10:28:28 +00:00