Development for the following features has been funded thanks to generous
support from donors.
Your help is vital to continue development!
3D Rad v7 Installation Notes
If you have 3D Rad version 6.x installed on your system and you want to continue using it along with
the new version 7, please make sure you specify a different installation folder for version 7,
when installing this update.
If you also want to port all your own projects to the new v7 installation, manually copy the
entire 3DRad_res folder from your v6.x installation to the v7 installation folder, by overwriting
all files with the same name there.
After the copy, please install the latest v7 again to the same folder, to ensure that
all 3D Rad system files you may have overwritten by copying data from the previous version,
are updated to the latest release.
Finally note that you may have to manually create a desktop icon for either the v6 or
the v7 installations.
Note that neither 3D Rad nor 3D Rad compiled projects require the PhysX system software installed.
However, in order to run PhysX in hardware, they may still require that your video card driver is
the latest or the one recommended by NVidia. For more information, please see the
NVidia website.
SEPTEMBER 2011 RELEASE (v7.22) ONLY AVAILABLE TO DONORS
GUIWindow
New object! The GUIWindow object allows you to easily add to your projects run-time GUI windows, without any scripting.
Please see the GUIWindow object's help file for more information.
TextPrint/ValuePrint
Dramatically improved load time for all TextPrint/ValuePrint objects that use the same font set.
Earlier 3D Rad versions used to take several seconds (minutes sometimes) to load your projects if they used multiple
instances of the TextPrint or ValuePrint object, even if they all used the same font set.
EventOnLocation
Added ability to use any 3d model as detection zone for the EventOnLocation object.
In previous versions the only supported volume shape was a box.
Sprite
Added support for imposters, allowing optimized (fast!) rendering of multiple instances
of the same sprite. For an example of usage, please see the SpriteImposters.3dr demo project.
Character
Multiplayer games support! Added ability, for a Character object running on the server, to have its controls operated
by a remote user on a client PC, in a multiplayer game.
PCar
Multiplayer games support! Added ability, for a PCar object running on the server, to have its controls operated
by a remote user on a client PC, in a multiplayer game.
EventOnContact
Added ability to use the EventOnContact object to also detect collisions involving RigidBody imposters.
The action (or actions) specified on the EventOnContact property dialog will be triggered when the master
RigidBody or one of its imposters is involved in a collision.
The index of the individual imposter involved in the collision will be reported as an EnventOnContact
object's internal parameter, allowing you to perform actions based on specific imposter collisions, via scripting or EventOnValue object.
For an example of usage, please see the EOCImposterDemo.3dr project.
RigidBody
Added ability to optionally hide all SkinMeshes linked to the RigidBody, when the RigidBody object is hidden
and show them when the RigidBody is shown. Please see RigidBody help file for details.
CamChase
Added a new 'LOOK-AT' setting for the items listed in the relationship window.
If an object is marked as 'LOOK-AT', the camera will look at it, while still following any object marked as 'CHASE', as usual.
Script
iObjectRefresh() function now supports SoundSource and SoundEffect objects.
AUGUST 2011 RELEASE (v7.21) ONLY AVAILABLE TO DONORS
CamChase
Powerful new feature! Added ability to render into a SkinMesh's textures!
This can be used for example to implement virtual monitors (like the screen of a CCTV in a 3d
scene). For an example of usage, please see the CameraTextureDemo project (in 3D Rad press
Ctrl+O to access available demo projects).
ExitFade
Added support for fade-in effect. For an example of usage, please see the FadeInDemo project.
Script
Fixed iObjectVelocitySet() functions not working with Car and PCar objects.
JULY 2011 RELEASE (v7.20) ONLY AVAILABLE TO DONORS
PCar
Added ability to set the body's restitution factor for the PCar object, run-time, by using the iObjectParamSet() script
function.
The ability to set the total mass and the center of mass offset (X, Y, Z) for the PCar object, run-time, by using the iObjectParamSet() script function.
This powerful feature will allow you to create vehicles that can change their mass-based physics behavior run-time, like a motorbike,
a sidecar or a sailing cart, where the driver moves left and right to change vehicle balance.
It can also be used, for example, to change vehicle settings in the 'garage' section of a vehicle based game, something that is
currently very difficult to achieve unless all cars in the game have identical mass properties.
ValuePrint
Fixed per-camera rendering functionality (when linked to a CamChase object, the ValuePrint object failed to only render into the
linked camera viewport, as expected).
JUNE 2011 RELEASE (v7.19) ONLY AVAILABLE TO DONORS. WILL BE RELEASED TO THE PUBLIC DURING THE FIRST WEEK OF JANUARY 2012
PCar
Added ability to set the body's friction factor for the PCar object, run-time, by using the iObjectParamSet() script function.
This feature can be used, for example, to make a car roll after a crash, instead of slide.
Script
Added iObjectChildTransform(OBJ_X,OBJ_Y,Vector3,Vector3)
allowing you to set angular/linear offsets for a specified object (the child) using the local space of
another object (the parent) as a reference.
Fixed SkinMesh object being rendered with a delay, when their position was set by
using iObjectOrientationSet/iObjectLocationSet function.This problem caused for example SkinMesh objects
attached to moving objects like the camera or cars to follow the parent object with a delay.
MAY 2011 RELEASE (v7.17) ONLY AVAILABLE TO DONORS
Script
Added iObjectDampingApply() function, allowing you to apply damping factors individually to each axis of a rigid-body-based object,
like RigidBody, Car, PCar etc.
Please see the editor functions reference for details.
Added iObjectImposterVelocitySet() function, allowing you to set an object's imposter velocity, in meters per second.
Please see the editor functions reference for details.
Fixed iObjectScaleSet() function not working with frame-by-frame animated SkinMesh objects.
RigidBody
Fixed imposters appearing displaced slightly when the master was rotated.
Fixed imposters ignoring damping and max speed/spin setting of the master.
SkinMesh
Fixed SkinMesh objects being slightly delayed run-time when attached to Car or PCar wheels.
Fixed SkinMesh objects having to be placed slightly off-center in order to get attached properly to PCar wheels.
3D Rad Editor
Fixed linking of multiple objects that have the same #code not working for items hidden using H + D + RMB.
Changed editor windows' beckground color to black, to prevent display from flashing during loading operations.
APRIL 2011 RELEASE (v7.16) ONLY AVAILABLE TO DONORS
RigidBody
Added the ability to create/set/destroy RigidBody object clones (imposters) run-time by using iObjectImposter*() script functions!
Please see sample projects named RigidBodyImposters.3dr and ImposterObjectRBDemo.3dr for examples of usage.
For additional information please see the Imposters section in the RigidBody object's help file.
Script
Added iObjectImposterTorqueApply(), iObjectImposterAngularAccelerationApply(), iObjectImposterForceApply(),
iObjectImposterAccelerationApply() functions, allowing you to apply forces and torques to individual RigidBody object imposters.
Please see the editor functions reference for details.
Added iObjectImposterGet() function, allowing you to to copy the position of a RigidBody imposter to the position of a SkinMesh object imposter.
Improved iShader...() functions to support post-process shaders, with also the ability to send any number of parameters to custom
shaders (applies to both post-process and regular shaders).
Also added iShaderStack() function allowing you to create advanced post-process effects by 'stacking' multiple shader modules.
See CamChase item below for more information.
CamChase
Added the ability to write custom post-process shaders.
Please see Post-process Shaders section of the shaders tutorial for more information.
Examples of usage are in the demo projects named PostProcessShader.3dr and PostProcessStacked.3dr.
MARCH 2011 RELEASE (v7.15) ONLY AVAILABLE TO DONORS
Added the ability to specify codes in the name of objects in the Object List, so that, when you link an object
with a certain code to another object, all objects that have the same code in the name get automatically linked to
that object as well. Please see the editor functions reference for details.
Wheel
Added a new parameter allowing you to set the wheel torque run-time by using for example a script.
Script
Added Sprite object support to the iObjectScale() function.
Added iMidiInOpen(), iMidiInMessage(), iMidiInClose() functions, allowing you to read notes and other messages from an attached MIDI device
and perform actions in your 3d projects based on that.
Car
Fixed car moving in the editor when force/torques were applied run-time to the Car, in a script.
FEBRUARY 2011 RELEASE (v7.14) ONLY AVAILABLE TO DONORS
Particles
Fixed animation stopping for already emitted particles when the Particle object was stopped.
Sprite
Fixed animation frame internal parameter not being readable from a script.
RigidBody
Fixed spin internal parameter returning a wrong value.
JANUARY 2011 RELEASE (v7.13) ONLY AVAILABLE TO DONORS
DECEMBER 2010 RELEASE (v7.12) THIS VERSION IS AVAILABLE TO EVERYONE! DOWNLOAD IT HERE NOW!
Particles
Added frame-by-frame animation support. For an example please see the ParticleAnimation.3dr demo project.
RigidBody
Added new internal parameter (IN_ and OUT_) allowing you to read/set the RigidBody path-following speed, run-time.
Fixed iObjectRefresh() script function not working when called on a static RigidBody.
SoundEffect
Fixed sound play not resetting when the object was restarted while the sound was playing.
SoundSource
Fixed sound play not resetting when the object was restarted while the sound was playing.
Wheel
Added 4 new internal parameters allowing you to control lateral/rolling friction and suspension parameters
run-time by using a script. This can be used, for example, to prevent a car stopping on a sloped surface,
from drifting down laterally. This technique is demonstrated in the WheeledVehicleScripted.3dr demo project.
Re-tweaked WheeledVehicle.3dr project which was no longer working properly under 3D Rad version 7.
Fixed reverse speed parameter not working (the forward parameter was used instead).
Fixed torque intensity parameter not being readable by scripts and other objects.
Fixed wheel visual being wrongly oriented when the parent was rotated.
Fixed SkinMeshes attached to the wheel to appear a bit off the wheel center after restarting the simulation in the editor.
Fixed iObjectOrientation() script function not working properly with the Wheel object.
Car
Fixed steering wheel visuals being wrongly oriented when the car was rotated.
NOVEMBER 2010 RELEASE (v7.11)
Script
Added four new functions (iObjectTorqueApply, iObjectAngularAccelerationApply, iObjectForceApply, iObjectAccelerationApply)
allowing you to apply forces and torques to rigid-based objects without using the Force object.
Fixed iObjectSpin() returning rotation in 2*Pi-per-second instead of degrees-per-second.
Fixed iFileEOF() function.
Terrain
Fixed crash when the 'Collision detection' option was un-checked.
Joint
Fixed ball mode motors failing when applied about Y and Z axes.
Car
Fixed trajectory stabilizer still affecting car physics after a certain speed was reached.
HighwayConstructionKit
Fixed collision detection problems for the hw090225 road piece.
Wheel
Fixed spin internal parameter returning rotation about local Z axis, instead of local X axis.
RigidBody
Fixed spin internal parameter returning rotation in 2*Pi-per-second instead of degrees-per-second.
EventOnInput
Fixed network player number parameter being changed by 3D Rad when the property dialog was closed with the OK button.
Fixed mouse detection area marker being rendered, in the editor, behind 'render-over-text' sprites.
OCTOBER 2010 RELEASE (v7.10)
First non-beta release of 3D Rad v7!
The first official release of 3D Rad v7 comes with a bonus feature allowing you to dynamically move
static RigidBody objects run-time, by using iObject...Set() script functions, to achieve paddles and
similar objects that affect the environment but aren't affected by it.
The lack of this feature was a huge problem in previous versions, when creating certain type of games.
For an example of usage of this new feature, please see the PaddleDemo project (run 3D Rad, press Ctrl+O).
Note that neither 3D Rad nor 3D Rad compiled projects require the PhysX system software installed.
However, in order to run PhysX in hardware, they may still require that your video card driver is
the latest or the one recommended by NVidia. For more information, please see the
NVidia website.
IMPORTANT!
Please see top of this page for important installation notes.
Documentation
Updated modeling tutorial with comments about modeling box-groups and other changes.
Updated Script API reference to reflect changes to the iObject...Set() functions.
Addons
Added E300_xi version for 3D Rad v7.
3D Rad Editor
Updated Object->Install... menu and custom RigidBody icon to reflect the fact that now dynamic bodies can be
made of box and sphere groups.
Updated some demo projects originally designed for v6 to better run under v7, and removed MixedCollisionDetection.3dr
demo as now dynamic box collision is supported natively.
RigidBody
Static RigidBodies can now be dynamically moved run-time by using script functions, and
can affect other rigid-bodies in the environment without being affected by them.
Fixed negative mass not making a box/sphere-based RigidBody static.
Changed default friction to a value more proper within the PhysX environment.
Replaced sphere-group-based Block10m shape with a box-based shape.
Removed default .ply/pol files from 3D Rad installation file (now we only use .coo files).
Removed surface drive/stickiness and collision map resolution parameters from property dialog (no longer applicable under PhysX).
Fixed bug preventing stop strength from being set to zero (infinite strength).
Made property dialog input boxes and parameters meaning consistent with the PhysX environment.
Updated Joint help file to reflect changes to the property dialog and parameters meaning.
Car
Improved lateral grip, to prevent the car from sliding when still or moving slowly on slopes.
Removed trajectory stabilizer parameter from property dialog (no longer applicable under PhysX).
Updated Car help file to reflect changes to the property dialog and bank stabilizer parameter meaning.
Removed CarArcade demo project from installation file as it was using a technique no longer necessary to achieve arcadish car games.
Fixed 3Impact Game Engine bug causing Car friction parameters to fail when dynamically modified via scripting.
Path
Fixed recording mode working when the Path object was disabled.
3D Rad Compiler
Fixed wrong timestamp used to generate the name of compiled project folders.
SEPTEMBER 2010 RELEASE (v6.50)
EventOnLocation
The EventOnLocation object's detection zone can now be 'cloned', run-time.
This means that you can create/destroy unlimited detection zones run-time, with one single EvenOnLocation object in the project.
Please see the EventOnLocation object's help file for details.
SkinMesh
Fixed issue causing user textures (userTextureA.dds etc) to be wrongly shared between different SkinMesh objects,
when creating additional entries for the default shader list.
3D Rad Compiler
When compiling with version 7 of 3D Rad, the compiled project no longer requires PhysX system
software to be installed on final user's PC.
Script
Fixed iSimulationFrqSet() not working properly in 3D Rad v7.
3D Rad v7.03b
Besides the latest version 6, this update also includes version 7.03 (beta) of 3D Rad!
This v7 update introduces PhysX support for the Joint object and the Spring object.
Because implementation of joints under PhysX is so different than implementation of joints under ODE,
certain parameters of the Joint object are no longer used, or have a slightly different meaning,
depending on the joint type you select.
You can find 3D Rad v7 in the Start menu. Running 3D Rad by clicking the desktop icon instead will start
the version you last launched from the Start menu. Note that version 7 will display "(hw)" in the
window title when the video card is performing hardware physics simulation, "(sw)" otherwise.
Note that now v7 no longer requires the PhysX system software installed on your system because it comes
with all the PhysX .dll files inside its own executable folder.
However, it may still require that your video card driver is the latest or the recommended one to run
PhysX in hardware. For more information, please see the
NVidia website.
AUGUST 2010 RELEASE (v6.49)
3D Rad Editor
Fixed crash happening when multiple objects were deleted from a project in rapid succession.
Fixed 2d objects (Sprite, TextPrint etc) failing to resize/stretch with right-click & drag, in the Virtual Editor.
Fixed Object->Add (insert) function not being ghosted when the Object List was empty.
SkinMesh
Important! The following features require a patch which IS NOT included to the main installation file for 3D Rad v6.49.
To install the patch, please replace the .dll files in your C:\3D Rad\3DRad_res\objects\SkinMesh\ folder with the .dll files in
this .zip archive.
For advanced users, the ability to add new 'default' shaders to the property dialog's drop-down list.
If the filename of the new shaders include the 'user' keyword, 3D Rad will load textures called 'userTextureA.dds',
'userTextureB.dds', 'userTextureC.dds', from the SkinMesh aspect's data folder and will pass them to the
currently selected shader as parameters named userTextureA/B/C.
In addition, if any PointLight object is present in the scene, range property information for them will also
be sent to the 'user' shader, as float variables named pointLightRangeXX (where XX is point light identifier, 01-04).
Also, user shaders will also always receive the 'tileCount' and 'bumpScale' parameters.
The 'ReflectAmount' and 'RefractAmount' will only be sent to user shaders when 'Enable environment map' is enabled for
the SkinMesh object.
Script
Added iGlobalStringSet(), iGlobalStringGet() functions, to set/retrieve strings from the global array of strings.
The global array of strings can hold up to 1024 strings and is accessible by all scripts in the project or all scripts in all
projects that have been compiled together (e.g. a multi-level game).
Added iFileEOF() function.
Imposter
Added randomization factors for imposter orientation, location and scaling.
ExitFade
Added ability to set, run-time, via scripting (iObjectTextSet() function), the name of the project to exit to,
when the ExitFade object is started.
Path
Added property dialog parameters, allowing you to set thickness and speed for the path visualization line.
EventOnLocation
Added 'Execute opposite action on exiting' option, allowing you, for example, to start a looping sound when an object
enters a zone and stop the sound when the same object exits the zone.
EventOnInput
Added 'Execute opposite action on release' option, allowing you, for example, to start a looping
sound when a key is pressed and stop the sound when the key is released.
EventOnContact
Added 'Apply opposite action on no-contact' option.
G-Force
Fixed acceleration/range parameters not resetting to their default, on the property dialog, when changed run-time via scripting.
3D Rad v7.02b
Alongside the latest version 6, this update also includes version 7.02 (beta) of 3D Rad!
This v7 update introduces PhysX support for the RigidBody object (and all rigid-body-based objects, like Ball, Character, Cam1StPerson),
and also for all objects based on scanning and ray casting (PathFinder, CarAI, script functions).
As a fantastic plus, compared to v6, v7 already allows you to make your collision detection models
for dynamic RigidBody objects by using both spheres and boxes! On the cons side however, please don't forget that
under v7, polygon-based RigidBody objects can only be static in your scene.
You can find 3D Rad v7 in the Start menu. Running 3D Rad by clicking the desktop icon instead will start
the version you last launched from the Start menu. Note that version 7 will display "(hw)" in the
window title when the video card is performing hardware physics simulation, "(sw)" otherwise.
3D Rad v7 requires the PhysX System Software installed on your system, and on any system running projects
created with 3D Rad v7. You can find the PhysX System Software at the
NVidia website.
Note that now v7 also requires a PhysX .dll called PhysXCooking.dll. This is supposed to get installed
along with all other driver files when you install the PhysX System Software (above). However I noticed that,
at least in one case, it was installed to a wrong folder, which caused an error message when 3D Rad v7 was launched.
I fixed the problem by manually copying the .dll to the main 3D Rad folder.
JULY 2010 RELEASE (v6.48)
3D Rad Compiler
Important! A patch which IS NOT included to the main installation file is now available, to fix a problem with the compiler.
To install the patch, after you have installed v6.48 of 3D Rad, please replace the file in your C:\3D Rad\ folder with the file in
this .zip archive.
3D Rad Editor
Objects loaded as part of an addon are now displayed in a different color (in the Object List)
and support specific editing features. Also they are now loaded at cursor location.
The editor now supports hiding (protection) of specific objects in a project.
This feature is only intended for the creation
of addons, as described here.
G-Force
Added acceleration action timer, force occlusion option and ability to generate G-Force object 'imposters' run-time,
useful to create multiple explosions that affect dynamics of any object in the scene that supports physics.
For an example, please see the demo project called GForceImposters.
Fixed animation time parameter not being readable from a script, run-time, when the animation was bone-based.
Script
Added iObjectSpinSet() function.
CamChase
Fixed shaking parameter not always working when changed run-time via script.
JUNE 2010 RELEASE (v6.47)
3D Rad Editor
Added ability to merge different Group objects into one. You can use this new functonality by linking two Group objects together.
3D Rad Compiler
Compiled projects are now generated inside their own unique (time stamped) sub-folder.
Imposter
Added mesh map support, allowing you to create one imposter for every vertex in a specified mesh (.x file format).
For an example of usage, please see the demo project called ImposterMeshMapDemo (run 3D Rad, press Ctrl+O, double-click the project).
PathFinder
Added internal parameter allowing you to determine, run-time, via scripting or EventOnValue object, when a valid path to the goal has been found.
SkinMesh
Fixed position snapping to world origin after the SkinMesh files were replaced with iObjectRefresh() script function.
3D Rad v7 - beta!
Besides the latest version 6, this update also brings the first beta release of 3D Rad version 7!
Version 7 uses the NVidia PhysX engine to power physics, instead of ODE. This means more robust
processing (almost zero random crashes!) and a higher number of processed objects, especially on
NVidia video cards supporting PhysX hardware processing.
You can find 3D Rad v7 in the Start menu. Running 3D Rad by clicking the desktop icon instead will start
the version you last launched from the Start menu. Note that version 7 will display "(hw)" in the
window title when the video card is performing hardware physics simulation, "(sw)" otherwise.
3D Rad v7 requires the PhysX System Software installed on your system, and on any system running projects
created with 3D Rad v7. You can find the PhysX System Software at the
NVidia website.
This first beta, only supports physics simulation for the default Car object and the default Terrain object.
Physics may also work for certain spherical RigidBody objects.
Projects that only use the default car, the default terrain and any other object that doesn't require physics,
should load and work fine under version 7. Try for example SimpleProject.3dr and ProjectileDemo.3dr
The car-simulation provided by PhysX is totally different, allowing a superior friction model and advanced tire and
suspension simulation. It also solves common issues like front wheels loosing grip too easily, vehicle tendency to
flip over on bends and bending wheels at high speed.
When experimenting with the new car simulation, keep in mind that the Trajectory stabilizer parameter is
ignored and that the Banking stabilizer is now the center of mass displacement, in meters (for example, 0.75 means
that the center of mass for the car will be 0.75 meters lower than the car-body model center.
IMPORTANT: NVidia provides the PhysX software as freeware. However, you have to notify NVidia of any
commercial application you may create and which is using PhysX. Also, regardless of its commercial
status, any PhysX-based application will have to display NVidia logos on the credits screen and elsewhere.
Because projects created with 3D Rad v7 use PhysX, the rules above may apply to whatever you create with 3D Rad v7.
For more information, please see the
NVidia PhysX EULA.
MAY 2010 RELEASE (v6.46)
SkinMesh
Added network support. Now, in a multiplayer game, when the project is running on the server, SkinMesh objects that have
the same Network ID and are in a project which is running on a connected client PC, are automatically placed at the same
location as the SkinMesh on the server. So, for example, if you have a racing game running on the server, and all the SkinMesh
objects for the cars (body, wheels etc) synchronized with identical SkinMesh objects in a project running on a client, the
user in front of the client PC screen will see the race that is happening on the server. More >>
Fixed SkinMesh disappearing sometimes when 'Visible in reflection' option was selected for it and imposters were created.
EventOnInput
Added network support. Now, in a multiplayer game, when the project is running on the server, EventOnInput objects that have the
same Network ID as EventOnInput objects in a project which is running on a connected client PC, will trigger actions on the server,
based on the remote user input. So, for example, if you have a tank battle game running on the server, and the EventOnInput objects
that control movements for a tank are synchronized with EventOnInput objects in a project running on a client, the client PC user
will be able to control the tank on the server. This feature, coupled with the ability to synchronize SkinMesh objects between
server and client projects, allows you to create multiplayer games enjoying a productivity which isn't possible with classic
game creation systems. More >>
Added mouse button detection, allowing you to perform, without scripting, actions when user-made (eg sprite) buttons are clicked
by using left, right or middle mouse buttons. For an example of usage, please see the sample project called ClickableButton.
Imposter
New object type! Run-time clones without scripting! The Imposter object can be used, for example to generate particles
where two objects collide. For an example, please see the ImposterObjectDemo project, include to this update.
EventOnObjectId
New object type! Certain 3D Rad objects expose the identification number (handle) of other objects as internal parameters.
For example, an internal parameter of the Scanner object is the ID# of the object that has just been hit by the scan.
The EventOnObjectId object will trigger an action (like starting a Particles object or a SoundEffect) as soon as the
ID# matches the ID# of a specified object.
Script
Added iSuperScreenshotSave() function, which saves a screenshot of the 3D scene as tiles.
Each tile is an image with the same format as the current display. The tiles can be combined by
using a paint program or a specialized tool, to form the original screenshot, as an unique high resolution image.
EventOnContact
Added 'Ignore collisions that don't involve reference objects' option.
TextPrint
Added internal parameters allowing you to set the TextPrint object color (rendered text color) run-time, from a script.
ConfigureControls
Raised render priority for the configuration panels, to make them appear in front of any other sprite.
Note that the panel will still be rendered behind text elements though.
Car
Added 'Throttle state' internal parameter allowing you to monitor A.I. cars' throttle run-time and perform actions based on that.
Joint
Fixed bug causing limits and motors to be applied about the wrong axes, when the reference body or the Joint object itself were rotated,
and the joint was in ball-mode.
Fixed limits being reversed when the Joint was in slider mode.
3D Rad Player
Fixed music loop failing to fade out after or overlapping during the loading phase.
APRIL 2010 RELEASE (v6.45)
PathFinder
New object type! This object can find paths for your characters in a generic scenery, without the need to model navigation maps,
waypoints, or define any grid or database. Works with moving goals and with scenery that change run-time as well!
For a demonstration, please see the PathFinderDemo project, included to the updated 3D Rad installation file, or
click here to download a stand-alone executable of the demo (8Mb).
Please see the PathFinder object's help file for more information on this fantastic new object!
Script
Added iObjectEnvMapFocusSet() function, which allows the creation of shaders requiring run-time manipulation
of environment map focus location, like point shadows, mirror-like reflections and more.
Improved iScreenAreaPicked() function to work on multiple calls per cycle, when in 'true' mode.
Fixed editor preserving changes when script dialog was closed with cancel, sometimes.
SkinMesh
400%-500% processing speed improvement when hundreds of SkinMesh objects are present in the scene.
Added support for run-time change of environment map focus location.
Sprite
Added animation duration parameter to the property dialog.
Fixed invisible sprite when running in maximized mode, with 'Work as full-screen mouse pointer' option enabled.
Counter
Added internal parameter for the Increment value. This allows it to be controlled run-time by a Script.
3D Rad Editor
Added button to donors list page to the About box, to address space issues and non-clickable links to donors' websites.
MARCH 2010 RELEASE (v6.44)
Particles
Added ability to emit particles within a specified direction range, to produce expanding-donut effects.
For an example of usage (explosion shock-wave effect),
please see the demo project called ExplosionParticlesDonut.3dr.
Script
Added two new script functions called iShaderViewMatrixSet(OBJ_X,string,OBJ_Y) and
iShaderProjectionMatrixSet(OBJ_X,string,OBJ_Y), allowing you to extract the view and projection matrices
from a specified CamChase object settings, and directly pass them to a SkinMesh's custom shader.
View and projection matrices can be used to implement fur/parralax/relief/cone-mapping-based effects.
Added iScreenShot() function. For an example of usage, please see the sample project called ScreenshotDemo.3dr
Raised the number of characters supported by the script editor to 260,000 (from 65,000).
Fixed Active setting sometimes not working as expected after deleting objects linked to the Script.
Fixed script shaders not compiling correctly if certain regular script variables were declared before the shader code.
SoundSource
Fixed Active setting not working as expected sometimes.
SoundEffect
Fixed Active setting not working as expected sometimes.
Sprite
Fixed current frame internal parameter not working as expected.
RigidBody
Fixed physics failing to resume after the project was stopped and restarted, if the mass was set to -1 run-time,
in a script. Please note that restoring mass to non -1 (dynamic) values run-time is still not possible, after it is
set to -1, because the only way to change from static to non-static is, for a RigidBody, an operation that requires
a full reset which can only be performed at startup.
3D Rad Compiler
Fixed load-time image slideshow and background music loop not being copied to the destination folder.
3D Rad Player
Fixed random crashes on multi-level projects.
Fixed poor framerate on certain video cards when multiple sound objects were set to not-playing-at-start.
FEBRUARY 2010 RELEASE (v6.43)
3D Rad Compiler
Added automatic encryption of compiled .3dr files so that they can no longer be opened/edited with the 3D Rad editor.
IMPORTANT: projects saved with earlier version of 3D Rad are only partially protected when compiled.
To fully protect your existing projects, open them in the editor and save them back.
3D Rad Player
Image slideshows and music loops can now be played while a compiled project is loaded. Specific projects can
have their specific image sequences and music loops. For details please see the Global loading image
section in the 3D Rad Compiler help file.
Car
Added Brakes state internal parameter. This allows you to read the state of
Car object's brakes from a script or an EventOnValue object, to implement, for example, working AI cars' taillights.
Script
Added iSimulationFrqSet() function.
Added iQuaternionInterpolate() function.
Fixed imposter shadows not rendering sometimes.
Transform
Fixed position of moving objects not being updated properly.
Sprite
Fixed crashes when sprites were included to a compiled project.
Fixed internal parameters not updating run-time when manipulated from a script.
EventOnInput
Fixed mouse detection area being sometimes visible in compiled projects, at startup.
RigidBody
Fixed iObjectVelocitySet() function affecting the object in the Virtual Editor sometimes.
JANUARY 2010 RELEASE (v6.42)
Transform
A new object you can use to apply run-time translations, rotations and scaling to the objects linked to it.
See the TransformDemo.3dr project for an example of usage.
Switch
A new object you can use to replace an object with another, run-time, as a consequence of game events.
It can also be used to switch between two specified animation sets of a SkinMesh object, with smooth
transition between the two (animation blending).
See the SwitchObjectDemo.3dr and SwitchAnimSetDemo.3dr projects for examples of usage.
Sprite
Added ability to play a sequence of images as an animation. For an example please see the SpriteAnimation.3dr project.
EventOnInput
Added auto-fire and toggle modes.
Added ability to edit mouse detection area visually, in the Virtual Editor.
SunLight
Fixed internal parameters not updating after they were changed by a script.
EventOnLocation
Fixed projectiles triggering condition without crossing the detection area.