Antony Riakiotakis
332cf291e4
Fix T43250, lamp node did not use energy when used with nodes in blender
...
internal.
Similar to fix for T42074 we need to multiply with energy -after-
texture application.
2015-01-27 16:34:40 +01:00
Bastien Montagne
fca515838e
Cleanup: strcmp/strncmp -> STREQ/STREQLEN (in boolean usage).
...
Makes usage of those funcs much more clear, we even had mixed '!strcmp(foo, bar)'
and 'strcmp(foo, bar) == 0' in several places...
2015-01-26 16:59:24 +01:00
Nicholas Bishop
d44890ee75
Code cleanup: de-duplicate codegen texid assignment
...
Reviewed By: campbellbarton
Differential Revision: https://developer.blender.org/D1026
2015-01-26 16:36:10 +01:00
Nicholas Bishop
c5f5012c5a
Code cleanup: use GPUDynamicType instead of int
...
Reviewed By: campbellbarton
Differential Revision: https://developer.blender.org/D1026
2015-01-26 16:36:07 +01:00
Nicholas Bishop
8174ea2684
Code cleanup: use GPUDataSource enum instead of int
...
Reviewed By: campbellbarton
Differential Revision: https://developer.blender.org/D1026
2015-01-26 16:36:04 +01:00
Nicholas Bishop
3a3d68cd88
Code cleanup: use bool instead of int
...
Reviewed By: campbellbarton
Differential Revision: https://developer.blender.org/D1026
2015-01-26 16:36:01 +01:00
Nicholas Bishop
fdb55e3719
Code cleanup: use an enum for GPUNodeLink.image
...
Reviewed By: campbellbarton
Differential Revision: https://developer.blender.org/D1026
2015-01-26 16:35:59 +01:00
Nicholas Bishop
6cfc55c4f9
Code cleanup: use enums instead of defines
...
Reviewed By: campbellbarton
Differential Revision: https://developer.blender.org/D1026
2015-01-26 16:35:55 +01:00
Nicholas Bishop
42eaf82d10
Code cleanup: move struct GPUFunction and related code out of header
...
Reviewed By: campbellbarton
Differential Revision: https://developer.blender.org/D1026
2015-01-26 16:35:53 +01:00
Nicholas Bishop
4c3a49ef34
Code cleanup: use lowercase "gpu" prefix for static functions
...
Reviewed By: campbellbarton
Differential Revision: https://developer.blender.org/D1026
2015-01-26 16:35:50 +01:00
Nicholas Bishop
548d222d81
Code cleanup: remove do-nothing function GPU_node_end
...
Reviewed By: campbellbarton
Differential Revision: https://developer.blender.org/D1026
2015-01-26 16:35:47 +01:00
Nicholas Bishop
2233a3556d
Code cleanup: remove some UNUSED parameters from static functions
...
Reviewed By: campbellbarton
Differential Revision: https://developer.blender.org/D1026
2015-01-26 16:35:44 +01:00
Nicholas Bishop
d1f88c05aa
Code cleanup: retype various fields/parameters from int to GPUType
...
Reviewed By: campbellbarton
Differential Revision: https://developer.blender.org/D1026
2015-01-26 16:35:40 +01:00
Nicholas Bishop
a59e590e7f
Code cleanup: remove parameter from GPU_node_link_create()
...
In all but one call the value 0 (aka GPU_NONE) was passed in. Clearer
to just default to GPU_NONE and change the one caller that sets a real
type to do it explicitly.
Reviewed By: campbellbarton
Differential Revision: https://developer.blender.org/D1026
2015-01-26 16:35:34 +01:00
Nicholas Bishop
27284e4f34
Code cleanup: minor comment improvements
...
Reviewed By: campbellbarton
Differential Revision: https://developer.blender.org/D1026
2015-01-26 16:35:31 +01:00
Nicholas Bishop
8cafa0afa6
Code cleanup: give anomymous enum used for CustomData.type a name
...
Used this in GPU module to clarify what some "ints" really are.
Reviewed By: campbellbarton
Differential Revision: https://developer.blender.org/D1026
2015-01-26 16:34:39 +01:00
Campbell Barton
6d78936c43
cleanup: style
2015-01-24 01:59:09 +11:00
Kévin Dietrich
448d143ad0
Fix T43273: vector math cross product inconsistent
...
GLSL missed the normalization step.
Reviewers: psy-fi, sergey, mont29
Reviewed By: mont29, sergey
Subscribers: mont29
Maniphest Tasks: T43273
Differential Revision: https://developer.blender.org/D1000
2015-01-17 14:58:48 +01:00
Antony Riakiotakis
8a547af2bd
Remove border clamping. Usually we just want to clamp to edge instead.
...
Note - checked all glTexImage functions and we never use that. Border is
ifdefed out too here.
2015-01-05 14:25:22 +01:00
Antony Riakiotakis
3414d01411
Use float format for high bit depth textures if available - storage
...
requirements are the same but we may avoid some clipping of float values
for HDRs when used in shaders.
2015-01-05 11:23:54 +01:00
Campbell Barton
aab4f2b762
cleanup: redundant casts & const cast correctness
2015-01-01 23:42:28 +11:00
Antony Riakiotakis
7f356c20dc
Modify shader for texture coordinates of objects to also match the
...
rendered result more closely (all three parameters should match now)
2014-12-31 15:48:16 +01:00
Antony Riakiotakis
f31f28c3f4
Corrections to world texture coordinates to match the rendered result
...
more closely
2014-12-31 15:00:18 +01:00
Campbell Barton
0ae4d7d405
Fix for GPU_materials_free accessing NULL pointer
2014-12-18 02:14:51 +01:00
Antony Riakiotakis
3e61478b1b
Fix T42917 shadow maps not working on ATIs.
...
This is yet another issue with framebuffers. There are two issues: We
need the framebuffer fully bound to check for completeness and when we
bind a depth texture as frame buffer we need to disable read/write.
2014-12-16 21:52:55 +01:00
Antony Riakiotakis
1b2fc74792
Fix typo in VBO
2014-12-16 20:20:41 +01:00
Antony Riakiotakis
137f557246
Remove NULL checking variable after using it.
2014-12-16 12:09:33 +01:00
Antony Riakiotakis
d6beaad01c
Fix T42875 GLSL display not correct in vertex array mode.
...
GLSL used a global variable to store the enabled vertex attributes which
were not set for vertex arrays after the VBO refactor.
2014-12-12 17:59:06 +01:00
Sergey Sharybin
d9ddc99a27
Fix T42184: Normal not displayed correctly in Material Viewport
...
There was a differences between how Cycles and BI treats Normal shader:
- Different normal direction assumption
- Different policy about vector normalization
Previous idea of trying to use single function and flip the output if
needed becomes more tricky, so i've just added new GLSL function which
corresponds to how Cycles deals with the Normal shader.
2014-12-10 19:12:54 +05:00
Antony Riakiotakis
e1e984e437
Fix T42807, variance shadow map broken afterFBO changes.
...
This code was a bit do-it-yourself instead of relying on the API. Should
be OK now.
2014-12-05 16:01:18 +01:00
Dalai Felinto
409043c69d
GPU: code cleanup, no fundamental changes
2014-12-03 17:56:20 -02:00
Antony Riakiotakis
a6bb564c99
Another crappy mistake in VBO code.
2014-12-03 20:20:04 +01:00
Antony Riakiotakis
4afd5db47e
Only annoy coders with warnings, not users.
2014-12-03 19:49:48 +01:00
Antony Riakiotakis
4ee53074aa
Dim down default (no) material for cycles so it matches default material
...
in blender internal
2014-12-01 16:21:02 +01:00
Campbell Barton
46c80d5d11
Correct includes for win32
2014-11-29 19:12:33 +01:00
Campbell Barton
1cb59394ae
Cleanup: use const, avoid float -> double in matrix invert
2014-11-29 17:49:38 +01:00
Campbell Barton
0154096fd5
Cleanup: unused headers
2014-11-28 23:12:12 +01:00
Campbell Barton
915235c87a
Cleanup: unused headers
2014-11-28 22:16:14 +01:00
Antony Riakiotakis
2b7e1c6011
Cleanup GPU: get rid of some extremely legacy draw code.
...
Basically this commit gets rid of most of the derived mesh immediate mode
drawing (cases such as subsurf excluded). Even when VBO is turned off
in user preferences, we still use vertex arrays, which are very similar to
VBOs but memory is client side. Vertex arrays are OpenGL 1.1 so compatibility
is not an issue here.
Reviewers: campbellbarton, sergey, jwilkins
Differential Revision: https://developer.blender.org/D919
2014-11-28 14:38:18 +01:00
Antony Riakiotakis
8152a6c66c
Do not use mipmapping on envmaps, can cause discontinuities on
...
environmental mapping when crossing the seam boundary.
Also output our favourite magenda on missing texture.
2014-11-26 19:19:25 +01:00
Antony Riakiotakis
8fa55d95e4
World background working on cycle nodes.
...
This is added in the spirit of the general cycles GLSL system
which is pretty much WIP still.
This will only work on cycles at the moment but generating for blender
internal is possible too of course though it will be done in a separate
commit.
This hasn't been tested with all and every node in cycles, but
environment and regular textures with texture coordinates work.
There is some difference between the way cycles treats some coordinates,
which is in world space and the way GLSL treats them, which is in view
space.
We might want to explore and improve this further in the future.
...also </drumroll>
2014-11-26 15:07:26 +01:00
Antony Riakiotakis
9f64a86436
Fix framebuffer completeness being broken after last framebuffer cleanup
...
commits.
Basically, we don't set a draw buffer until draw time comes. Also add
explicit validation function to validate after all textures have been
attached (could be done automatically at bind time too probably, but
left out for now)
2014-11-25 16:16:50 +01:00
Antony Riakiotakis
82aa32c3a9
Fix leftover f postfix from C code.
2014-11-21 21:40:23 +01:00
Antony Riakiotakis
9124ecb16b
Cycles: support for specular color in solid shading mode, available in
...
the material panel.
Patch by Phillipp Oeser (D62) with some minor modifications, thanks!
2014-11-21 14:07:38 +01:00
Antony Riakiotakis
102d3ad595
Fix T42622, environment texture GLSL result different from rendering.
...
Also included mirror ball shader, which was missing.
2014-11-20 19:43:32 +01:00
Antony Riakiotakis
a08ac5513f
Fix for previous commit
2014-11-18 12:44:56 +01:00
Antony Riakiotakis
3ae0126f86
GPUFramebuffer API cleanup:
...
* read buffers are set at texture binding time
* change naming when setting a texture as framebuffer
* add function to set slot of framebuffer as current target instead of
texture.
* Binding a buffer reuses the dimensions of the texture at bind time
(can use viewport to set to arbitrary range later)
* Removed offscreen buffer width/height, use the generated texture
dimensions instead. Those were supposed to be checked to see if
generated texture had the requested size but were never actually changed
to the texture dimensions (and it's redundant to store twice).
2014-11-18 12:37:55 +01:00
Antony Riakiotakis
0f947f2cc5
GPU framebuffer/texture API: Warn when binding a texture that is also
...
attached to a framebuffer or vice versa.
might be more correct to just handle the case and unbind here.
2014-11-18 12:15:16 +01:00
Antony Riakiotakis
998a867ba3
GPU framebuffer API:
...
Allow binding a texture to a different texture attachment than the
first.
Also fix a number error in seperable gaussian blur shader.
2014-11-18 11:56:37 +01:00
Dontsov Valentin
8c712eaa29
GLSL: specular transparency support for Blender internal materials
...
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D781
2014-11-09 15:35:08 +01:00