Commit Graph

1122 Commits

Author SHA1 Message Date
Younguk Kim e07e5d0203 Fix assert macros that cause a crash in non-debug 2017-07-05 19:49:46 +09:00
rdb 48c811e112 cull: remove GeomMunger stored on CullableObject 2017-07-03 11:47:59 +02:00
rdb 9c4151cb0f ShaderGenerator: fix TextureAttrib assertion
This was caused by af57c829d2 and was triggered by a change in TextureStage sort.
2017-06-22 13:36:47 +02:00
rdb 511b0c10e5 ShaderGenerator: don't generate a shader per Material 2017-06-22 13:35:46 +02:00
rdb af57c829d2 ShaderGenerator: reduce combinatoric explosion of shaders
This is done by:
* Not considering the texture pointer when looking up a generated shader, only type
* Not requiring different shaders based on RescaleNormalAttrib
* Not looking at AlphaTestAttrib unless it is going to be relevant

This should dramatically reduce the number of shaders that are being generated for many scenes, especially since the only thing that differs from object to object is often just the texture.

These changes are also necessary to make b781995ef1 more usable, since prepare_scene may see a slightly different state than is encountered at render time due to code in CullResult adding in an AlphaTestAttrib or RescaleNormalAttrib.
2017-06-20 18:45:49 +02:00
rdb b781995ef1 ShaderGenerator: prepare_scene now invokes shader generator.
This also necessarily removes ShaderGenerator's dependency on a host window.
2017-06-20 16:16:30 +02:00
rdb 90f96fc1a9 Change SimpleHashMap implementation to improve performance of GC.
The new implementation stores elements contiguously and keeps a separate sparse array of indices, similar to the new PyPy and CPython implementations.  This vastly improves performance when iterating over the individual elements, such as when garbage collecting states, and decreases memory usage.
2017-06-12 19:58:02 +02:00
rdb 6b882ac767 Fix slow garbage collect after using a lot of states 2017-06-09 20:12:49 +02:00
rdb 53794e8e36 Get rid of unnecessary DisplayRegionBase class 2017-05-24 13:42:01 +02:00
rdb d576c6b638 Improvements to generated API docs, especially in direct tree.
Also add an entry point for pfreeze.
2017-05-24 13:30:21 +02:00
rdb 68be3c6dfe More efficient light handling; sort lights by highest priority first 2017-05-15 16:59:44 +02:00
rdb 81e414030e Fix RenderState cache leak - gc did not work properly
(Thanks to deflected for helping to track this down)
2017-05-13 23:30:09 +02:00
rdb 6f8b379bda Big patch full of performance improvements
This particularly benefits applications with a lot of nodes.
2017-04-03 01:41:23 +02:00
rdb edb83fe89a Various optimizations to reduce performance overhead of rendering 2017-02-21 02:20:06 +01:00
rdb b113d9db55 Fix incorrect type hierarchy of HermiteCurve, PandaNode, ShaderGenerator 2017-02-20 00:32:05 +01:00
rdb cfe810ace7 Add set_shader_inputs for efficiently setting multiple shader inputs 2017-02-06 13:16:27 +01:00
rdb 4ed199cece Fix various compile warnings and a few code consistency issues 2017-01-09 20:36:53 +01:00
rdb ab5b5e7e74 Merge branch 'release/1.9.x' 2016-12-25 22:47:22 +01:00
rdb 5aa8618572 Don't error if passing an oversized matrix array to a mat4[1] shader parameter 2016-12-20 23:18:05 +01:00
rdb eab2a1a733 Add CP_area_priority for area lights 2016-12-19 23:39:50 +01:00
rdb 34068dc0c1 Implement support for SSBOs 2016-12-13 21:22:17 +01:00
rdb 29411f5e14 Merge remote-tracking branch 'origin/release/1.9.x' 2016-10-31 22:32:39 +01:00
rdb 4526de8f7a Fix exception when trying to pickle NodePathCollection objects 2016-10-31 22:07:01 +01:00
rdb 08ea4bf2e5 Merge branch 'release/1.9.x' 2016-09-14 20:57:26 +02:00
rdb 9904980ce4 Fix async flatten of node without parents 2016-09-14 17:29:53 +02:00
rdb 2eba4dea9b Change handling of unsupported render mode so that behaviour can be shared among renderers 2016-07-20 15:59:42 +02:00
rdb 47388b0dbc Separate out CPython calls from core libs; eliminate need for pystub 2016-07-20 14:30:41 +02:00
rdb 8381118a97 Assorted tweaks and compile warning fixes 2016-07-14 12:54:39 +02:00
rdb bfe7a7b1d3 Merge from 1.9, cleanup DX9/shader, fix built-in shadow mapping in DX9 2016-07-10 16:44:09 +02:00
rdb c34758ea5c Cg fixes for DX9 2016-07-10 14:31:58 +02:00
rdb 18874fa151 Replace PN_int/uint types with stdint.h types, since all compilers we support have them.
Plus, we already had code that relied on them being available anyway.
2016-05-11 00:27:58 +02:00
rdb ce29ae490d Interrogate improvements, more properties, MAKE_SEQ_PROPERTY 2016-05-11 00:16:53 +02:00
rdb fb78fe6e2a Interrogate enum class support (maps to Python 3.4 enums), sanify wrapper code 2016-05-07 00:45:26 +02:00
rdb dc09e28ed9 Also accept a .gz wherever a .pz file is accepted 2016-04-29 16:54:25 +02:00
rdb a2ae62dbda Introduce ability to write older .bam versions, down to 6.21
See https://www.panda3d.org/manual/index.php/Dev:Bam_Format
2016-04-29 16:30:41 +02:00
rdb e4b032ea21 Fix crash reading Camera objects from pre-6.41 bam files 2016-04-12 20:47:11 +02:00
rdb 64cb1c520e Fix ColorBlendAttrib bam write, add properties to most *Attrib 2016-04-09 19:10:52 +02:00
rdb f0cd1ce315 ColorBlendAttrib: support separate alpha mode and dual-src blend. bam 6.42 2016-04-08 15:44:57 +02:00
rdb 15b0ba45f9 Fix broken pickling in Python 3 build 2016-03-31 16:49:27 +02:00
rdb 82ab126ea7 Add support for glLogicOp via LogicOpAttrib / NodePath::set_logic_op 2016-03-25 17:33:30 +01:00
rdb 2bf886fc5b Add premultiplied alpha mode, for convenience 2016-03-02 17:55:34 +01:00
rdb 2971915618 Bam 6.41: lenses and light changes, add max_distance 2016-03-02 17:54:49 +01:00
tobspr 0fcfb8e372 New file headers, new comment style 2016-02-17 17:47:48 +01:00
rdb 090e912ce6 Cleanup of comments and whitespace 2016-02-01 22:30:43 +01:00
rdb 0a366e987f Merge branch 'release/1.9.x'
Conflicts:
	panda/src/glstuff/glGraphicsStateGuardian_src.cxx
	panda/src/putil/bamReader.h
2016-01-26 11:45:04 +01:00
rdb ea368dd559 Bam reader robustness; allow threaded bam reading from Python 2016-01-26 11:35:04 +01:00
rdb bb85b261f8 Expose more properties to Python
Rename "from" to "from_solid" to avoid clashing with Python keyword
2016-01-13 21:29:34 +01:00
rdb 6eb460c359 Add ability to cache compiled GLSL shaders, remove unused ShaderUtilization 2016-01-13 19:58:11 +01:00
rdb 41fad59ae8 bam 6.40: support writing NodePaths, allows instanced lights and clip planes 2016-01-11 15:04:06 +01:00
rdb 3393454582 Metalness workflow PBR stuff, support light color temperatures, make light specular color tied to light color by default 2016-01-09 16:08:33 +01:00