Commit Graph

827 Commits

Author SHA1 Message Date
Lasse Öörni
55ce257a9c Initial postprocessing implementation. Reimplemented the FXAA edge filter using it. 2011-12-26 01:07:37 +00:00
Lasse Öörni
510c606b3d Removed the redundant GetString() functions from XMLElement. 2011-12-24 20:04:52 +00:00
Lasse Öörni
762085c443 Updated script API. 2011-12-24 00:25:02 +00:00
Lasse Öörni
86608f6ba5 Changed PostProcess class to not allocate rendertargets beforehand. 2011-12-23 00:35:42 +00:00
Lasse Öörni
75beda5f3a Removed the "unculled drawable" mechanism. Instead added occludee-flag to Drawable.
Added missing attributes to ParticleEmitter.
2011-12-20 23:25:22 +00:00
Lasse Öörni
d449b946bd Additions to the PostProcess API.
Exposed PostProcess to script.
Code cleanup.
2011-12-19 23:44:28 +00:00
Lasse Öörni
a341b9ea4f Cleaned up Menu code.
Added Node::Clone().
2011-12-18 17:45:11 +00:00
Lasse Öörni
f58e2595bf Rewrite node & component IDs when instantiating content from file.
Added choice to instantiate content as either replicated or local.
Fixed popup menu & editor hierarchy window update bugs.
2011-12-18 13:44:03 +00:00
Lasse Öörni
7f2f278c58 Added Scene::Instantiate() & Scene::InstantiateXML(), which load a partial scene from binary or XML.
Added editor functions Load node & Save node, which use the above functionality.
Fixed threading crash with multiple shadowed directional lights.
2011-12-18 00:57:50 +00:00
Lasse Öörni
1e1496e7d4 Refactored setting variants from strings.
Refactored nodes and components to write their type & ID when saving, instead of the parent node doing that.
Do not save attribute types into the XML format scene, as they are known.
When loading a node hierarchy, store also the root node reference into the SceneResolver.
Fixed bugs in async binary scene loading.
Removed the redundant .dat file extension filter from the editor. Instead .bin should be always used for binary scenes.
2011-12-17 18:37:23 +00:00
Lasse Öörni
a3c6e580c3 Added Graphics::GetFloatFormat(). 2011-12-15 21:06:00 +00:00
Lasse Öörni
35c21f06d7 Removed the fallback shadow code, as GPUs that actually need it are also too low-performance to render shadows acceptably. 2011-12-13 22:22:46 +00:00
Lasse Öörni
a207ec96c1 Updated script API documentation. 2011-12-13 21:32:15 +00:00
Lasse Öörni
9e4a9362cb Node::SetParent() retains the world transform.
Added GetDerivedComponent() to Node.
Added SetWorldPosition() and related functions to Node.
Added unparent command (Ctrl+U) to the editor.
2011-12-12 22:12:05 +00:00
Lasse Öörni
51cf76b99a Renamed SetLinkedDepthBuffer() -> SetLinkedDepthStencil(). 2011-12-10 16:36:59 +00:00
Lasse Öörni
c334b471e0 Exposed texture formats to script.
Fixed directional lights in light pre-pass mode when using the same camera for multiple views with different aspect ratios.
2011-12-09 23:57:10 +00:00
Lasse Öörni
b2fae0ccb4 Added FXAA edge filter.
Updated readme for upcoming release.
2011-12-08 23:19:04 +00:00
Lasse Öörni
8f882f8225 Rewrote the zone ambient color gradient system. Now zones only define one ambient color, but look for neighbor zones' ambient colors when gradient mode is enabled.
Fixed missing script bindings to the zone ambient gradient & camera override flags.
Added a default bounding box size for newly created zones.
Added documentation on zones.
2011-12-06 14:48:53 +00:00
Lasse Öörni
644c37a099 Mark light masks to G-buffer stencil for light culling.
Fixed OpenGL forward rendering.
Documentation fixes.
2011-12-03 17:51:18 +00:00
Lasse Öörni
f9bfd4948f Shader refactoring.
Removed ambient + lit pass combining for less shader permutations, and to prime the Z-buffer with a lightweight pass in case there is a large amount of overdraw.
Moved ambient light calculation to the ambient pass vertex shader.
Added render mode toggle to the editor settings.
Note: OpenGL rendering is currently broken.
2011-12-03 14:06:35 +00:00
Lasse Öörni
471d3ec5ff Added libcpuid for improved CPU detection.
Added separate functions for querying logical & physical CPU count.
2011-11-27 17:45:03 +00:00
Lasse Öörni
a51afb0631 Initial vertex lighting support. 2011-11-21 00:17:52 +00:00
Lasse Öörni
a48c7ccdfb Migrated to new scriptarray add-on. 2011-11-19 13:14:15 +00:00
Lasse Öörni
5cf7e09324 Added Octree raycast that returns only a single drawable result.
Fixed conditions in raycast code.
2011-11-18 00:16:01 +00:00
Lasse Öörni
75c33d8b5c Changed the global script property arguments to GetArguments() function, as it performs an expensive vector to array conversion on each call. 2011-11-17 18:34:49 +00:00
Lasse Öörni
3313a7a66b Updated script API. 2011-11-12 21:53:41 +00:00
Lasse Öörni
8a52455faa Added shadow mask feature, which allows selective shadow casting by different lights.
Documented multithreading.
2011-11-07 20:11:20 +00:00
Lasse Öörni
d5c42e8c2c Added Node::LookAt().
Added Quaternion::FromAxes().
2011-10-25 22:04:11 +00:00
Lasse Öörni
6e51dffdeb Updated readme.
Allow to switch force SM2 / force fallback modes at runtime.
2011-10-23 18:18:47 +00:00
Lasse Öörni
bdc29caebd Reverted to AngelScript 2.21.1 because of crash with VariantMap.
Find the zone at far clip plane and use it for the background color.
Added zone mask for drawables, allowing to select which zones they can belong to.
When zone moves or changes its bounding box, clear the cached zone from all drawables that were inside.
2011-10-22 18:49:15 +00:00
Lasse Öörni
4ca9035ba5 Reimplemented the MSVC random number generator to produce same random number output on all platforms. 2011-10-21 19:12:20 +00:00
Lasse Öörni
2b57762508 Added zone property for Drawables in the script API where applicable.
Removed the viewmask attribute from Zone as it is not currently used.
2011-10-21 07:13:44 +00:00
Lasse Öörni
15e8c14623 Separated SetIntensitySortValue() into two separate functions.
Use the drawable's bounding box in light sort value calculations, instead of just the bounding box center.
Added Rect::Clip().
2011-10-19 23:03:36 +00:00
Lasse Öörni
eba23029c0 Fixed maxLights not exposed to script.
Added maxLights setting to TestSceneOld animated models as a test.
Improved drawable light sorting.
2011-10-19 07:27:36 +00:00
Lasse Öörni
0e6b9508b9 Gizmo improvements.
Reduced node transform edit related code duplication in the editor.
Exposed Plane class to script.
2011-10-17 18:55:55 +00:00
Lasse Öörni
b11b0f8de1 Initial gizmo-based node transform editing.
Fixed material assignments in the axes model.
Possibility to add unculled drawables to the octree.
2011-10-16 23:59:53 +00:00
Lasse Öörni
4a34382798 Fixed clicking on UI elements clearing the scene node selection in the editor. 2011-10-16 17:52:27 +00:00
Lasse Öörni
a32f0f1c26 Fixed rotation of the axes model.
Added ray-frustum intersection test.
Added accurate raycasts for point and spot lights. Directional light now never returns a raycast result, as it has an "infinite" bounding box.
Added better debug visualization of a point light.
Reorganization of the editor script code.
2011-10-16 14:53:14 +00:00
Lasse Öörni
bad42bcc5f Take node parenting into account when moving nodes in the editor.
Added LocalToWorld() & WorldToLocal() functions to Node.
2011-10-15 18:37:55 +00:00
Lasse Öörni
83dbac20fc Fixed Camera's view override flags not exposed to script. 2011-10-15 13:28:28 +00:00
Lasse Öörni
dd131fbd66 Added missing file.
Updated script API.
2011-10-14 17:43:54 +00:00
Lasse Öörni
58843be1fa Initial multiselection in the editor. 2011-10-12 13:17:04 +00:00
Lasse Öörni
589c0ee141 Expanded the lit base pass optimization to cover also the first spot or point light affecting a drawable.
Do not render light to stencil if camera is inside the light volume.
Added optimization for directional light shadow casters that are fully occluded by another shadow caster: do not render the lit pass for them.
Removed the alpha masking hint. Alpha test no longer gives the batch a lower priority.
2011-09-29 22:53:16 +00:00
Lasse Öörni
80a6948b22 Large rendering architecture refactoring.
Optimized shaders to do more work in the vertex shader.
Deferred rendering removed, at least for now.
Switched to RGB normal maps, with specular intensity in the alpha channel. Removed NormalMapTool.
Optimization of light influence on objects by stencil masking.
Split shadowed lights are now rendered in one pass. A virtual shadow depth cube texture is used for point lights.
Refactored shadow map allocation. Allow to use lower resolution shadow maps than quarter size.
Added the Polyhedron math object, used for improved shadow map focusing.
Reversed the convention for the plane intercept parameter.
Math-related code cleanup.
2011-09-26 21:56:31 +00:00
Lasse Öörni
fe495f6bcc Added deferred fallback mode, which renders the G-buffer in 2 passes.
Made the OpenGL extensions mandatory to unify expected functionality with Direct3D9 mode.
2011-09-10 19:28:59 +00:00
Lasse Öörni
d6a3f89393 Added low-quality (1-sample) shadow filtering option.
Refactored fallback shaders so that they are compiled as variations into the SM2 directory.
2011-09-09 20:41:56 +00:00
Lasse Öörni
514ef8966d Fixed OpenGL path.
Documentation update.
2011-09-09 07:51:13 +00:00
Lasse Öörni
fc3896fe02 Added configurable instancing group minimum size and maximum triangles per instanced object. 2011-09-05 06:39:28 +00:00
Lasse Öörni
40c8306691 Added triple buffering option. On OpenGL it is a no-op.
Removed the pass HashMap from Technique. Now it is just a static array.
2011-08-29 17:45:48 +00:00
Lasse Öörni
f0ecda9785 Fixed numerical stability in Quaternion matrix constructor.
Fixed spotlight wrong size in deferred rendering.
Removed "first light" optimization pass due to buggy interactions with alpha blending.
Fixed morphWeights property naming on AnimatedModel.
Fixed missing shader combinations.
Ported the GraphicsTest example from Urho3D 1.0.
2011-08-24 03:52:41 +00:00
Lasse Öörni
b6e09d2655 Renamed FinishUpdate() to ApplyAttributes() to be more descriptive, and to not confuse with frame updates. 2011-08-23 06:43:18 +00:00
Lasse Öörni
47eae408b5 Updated script API reference. 2011-08-22 22:25:32 +00:00
Lasse Öörni
6f5f3c252b Specify diameter instead of radius for sphere, capsule and cylinder CollisionShapes so that switching between shape types is more intuitive.
Capsule and cylinder shapes are now upright by default.
Fixed geometry offset staying if it was first set, but then zeroed after assigning the rigid body.
Fixed geometry offset not updating after the rigid body is assigned.
2011-08-22 21:35:23 +00:00
Lasse Öörni
3f7fffbf49 Some renames. CollisionGroup -> CollisionLayer, Scene::GetNodeByID() -> GetNode(), Ray::Distance() -> HitDistance().
Moved all hit distance tests to Ray.
Tundra scene physics import.
2011-08-22 20:06:27 +00:00
Lasse Öörni
906b528cc5 Adding and removing of node user variables in the editor. 2011-08-21 18:57:59 +00:00
Lasse Öörni
10ad7a3dd2 Added phantom attribute to CollisionShape. Phantom shapes create collision events, but do not generate contact joints to the physics simulation.
Fixed opening resources externally in the editor.
2011-08-21 12:39:28 +00:00
Lasse Öörni
23d51b853e Pick resource functionality in editor.
Editor script code cleanup.
Added missing functions to the script API.
2011-08-21 10:06:52 +00:00
Lasse Öörni
3576a81993 Initial node/component attribute editing.
Attributes reorganized for editing. Accessor attributes used more for verifying correct value ranges.
More editor settings, including rendering quality.
PhysicsWorld raycast returns CollisionShapes instead of Nodes.
Fixed LineEdit cursor not showing when at text start.
Script API fixes.
2011-08-21 08:15:21 +00:00
Lasse Öörni
5e2682d3e5 Cut/copy/paste in editor.
Exposed Serializable::FinishUpdate() to script.
2011-08-18 21:52:59 +00:00
Lasse Öörni
16911eab63 Added delete support to the editor.
Fixed erroneous script API bindings.
2011-08-18 18:46:12 +00:00
Lasse Öörni
e22483e482 Added viewmask parameter to octree queries to avoid manual viewmask checking in View and to allow partial scene queries for logic.
Reordered ray query parameters; added default query parameters to script.
Renamed BeginRender & EndRender events to BeginRendering & EndRendering.
2011-08-09 15:48:32 +00:00
Lasse Öörni
57e8e910af Fixed missing alwaysUpdateOwner script property in NetworkPriority. 2011-07-31 17:22:27 +00:00
Lasse Öörni
b694ad047e Refactored interest management into the NetworkPriority component.
Fixed setter functions referring to the Set class in Doxygen comments.
2011-07-31 17:19:00 +00:00
Lasse Öörni
6d552a8193 Use fixed size 24 bit network object IDs for more deterministic bandwidth use.
ReadID() / WriteID() renamed to ReadFileID() / WriteFileID().
2011-07-30 20:57:28 +00:00
Lasse Öörni
7b254df85d Added simple distance-based interest management for networking. 2011-07-29 12:24:22 +00:00
Lasse Öörni
38fe1554ba Initial multiplayer NinjaSnowWar.
Various networking and script API bugfixes.
Fixed kNet profiling compile errors due to STL -> Container library conversion.
Fixed loading of textures failing in headless mode (just return success without doing anything.)
The E_CLIENTCONNECTED and E_CLIENTDISCONNECTED events now also come from the Connection in question, to allow using GetSender() for convenience, instead of looking up the connection from event data.
Added simple network traffic statistics logging to Connection.
2011-07-29 00:04:52 +00:00
Lasse Öörni
1c154ef17e Uncommented the package file download test from TestScene.as.
Fixed missing default arguments in the script API.
Fixed crash if a script file is unloaded while executing a script function.
Fixed Urho3D.exe not correcting the script file name to internal format (slashes instead of backslashes.)
Use black default background for the Direct3D9 window.
2011-07-28 11:41:56 +00:00
Lasse Öörni
43671aa66f Fixed up to one second delay in starting UDP datagram sends.
Refactored SendMessage API in Connection & Network, allowing the user to specify message priority.
Split Network library internal messages into 3 priority categories.
2011-07-28 09:01:33 +00:00
Lasse Öörni
f70cc35815 Added package file download support to the network protocol.
Added commented out package download test code to TestScene.as.
Increased kNet's UDP send rate upper limit and aggressiveness in increasing the send rate.
Fixed being unable to do sparse seeks in files when writing.
Container library bugfixes.
2011-07-27 22:41:12 +00:00
Lasse Öörni
40d04b377b Added Compare function to String, which is optionally case-insensitive.
Added registration of allowed remote events.
2011-07-25 23:15:04 +00:00
Lasse Öörni
ffad4ba005 Fixed UI related crashes in headless mode.
Fixed loading of materials in headless mode (just return success while doing nothing.)
Fixed EventType parameter of SendRemoteEvent() / BroadcastRemoteEvent() in the script API, should be a string.
Added smoothed motion for nodes in network client scene.
Added enum CreateMode to CreateChild() & CreateComponent() which replaces the "local" bool parameter.
Added possibility for client to spawn physics boxes in networked TestScene.
2011-07-23 23:33:57 +00:00
Lasse Öörni
4c3dd57980 Added more networking functionality, including remote events and client's controls update.
Added Append functions to String.
Removed networking mode from Scene, as it seems to be unnecessary.
2011-07-15 14:52:43 +00:00
Lasse Öörni
f28728b3e2 Send identity VariantMap on connecting to server.
Fixed possible bug in WriteString/ReadString if the string contains zeroes in the middle.
2011-07-14 13:11:39 +00:00
Lasse Öörni
71603ae52e Initial kNet-based networking implementation.
Renamed SharedPtr::Ptr() to RawPtr() to avoid conflicts with kNet's Ptr macro.
Added chat test program.
2011-07-13 23:32:57 +00:00
Lasse Öörni
af2b4311dc Function name unification and cleanup. ChildElement -> Child. RootElement -> Root. ScriptedChildren -> ChildrenWithScript. 2011-07-12 09:08:17 +00:00
Lasse Öörni
5a6c8f6d27 Removed global properties related to the script object's ScriptInstance. The ScriptInstance is available as the global property "self" instead.
Documentation update.
2011-07-05 08:46:45 +00:00
Lasse Öörni
180da947fa Added generated scripting API reference.
Modified Script::DumpAPI() to output in Doxygen format.
2011-07-05 08:25:04 +00:00