View Full Version : LightWave v9 Preliminary SDK

02-14-2006, 10:38 AM
This is a preliminary version of the LightWave v9 SDK and will of course be subject to change!

>>>> LightWave v9 Preliminary SDK <<<< (http://www.newtek.com/lightwave/developer/LW90/lw9sdk.zip)

02-14-2006, 10:40 AM
ohhh... downloading now. I cant wait to look! :D

02-14-2006, 10:52 AM
Since this has been made public, I thought I would post it before the NT servers go bonkers today:

9.0 Changes

February 8th, 2006

This is a list of the changes in the LightWave 9.0 release that affect the SDK.


* The CameraHandler provides direct pixel cordinates and matrix functions to the LightwaveŽ Layout camera.


* Node based image / procedural / gradient handeling.


* A single line height dThumbnail control option THUM_SNGL has been added.
* dThumbnail border control options THUM_BORDER_NONE, THUM_BORDER_UP, THUMBORDER_DOWN have been added.


* Envelope creation and deletion event notifications weren't always being sent. They are now.
* An envelope group rename event notification LWVPEC_RENAME has been added.


* A new flag LWDMF_AFTERMORPH has been added to allow displacement plugins to be evaluated after morph. That is before the subdivision has being applied when set to "after morph".


* The camera info global version has been incremented to 4.
* A LWCAMF_USECAMTYPE flag has been added to indicate that a non-classical camera type is being used for the camera.
* An evaluateRay function has been added to allow plugins to determine the ray properties for non-classical camera types during rendering.
* The item info global version has been incremented to 4.
* Item info has gained new functions in relation to the improved align to path.
* New rayTrace function added.


* The volumetrics class version has been incremented to 5.
* The volumetric access structure has been expanded to include the current pixel position and the current ray recursion level.


* The LWGPTF_SUBD flag has been added, to mark the polytype as creating a subdivision surface.

Commands: Layout

* A new command ApplyServerByItemID has been added to allow adding plugins by specifying the item id it should be applied to directly, without having to select the item first.
* New commands PathAlignMaxLookSteps and PathAlignReliableDist have been added to support the updated align to path controller.


* The AnimUV, Camera and Nodes plug-in classes have been added to the support list of the LScript Object's server() method. These plug-in classes are represented in the script's environment by the following pre-defined values:


* Clarified that texture contexts should not be destroyed while a texture using it still exists.

02-14-2006, 01:08 PM
I don't quite understand this part:

len = rayTraceMode( position, direction, color, eta, rtmode )
Trace a ray from the given location in the given direction in world coordinates. The return value is the length of the ray (or -1.0 if infinite) and the color coming from that direction. The direction argument is the outgoing direction and must be normalized (a unit vector). The eta is the outgoing ray refraction index, and is only used when rtmode is RTMODE_REFRACTION. The rtmode parameter defines the outgoing ray type.

The choices are:
RTMODE_REFLECTION for reflection rays.
RTMODE_REFRACTION for refraction rays.

what is the difference of the reuslts when using RTMODE_REFLECTION or RTMODE_REFRACTION , if the position, direction is given?

02-14-2006, 01:29 PM
Chuck.. Please tell developer team to add pntFlag() and polFlag() functions in LWPolygonTypeAccess, with flag allowing polygon handlers to check whether specific point or polygon are hidden.. Otherwise VirtualMirror http://virtualmirror.trueart.pl (aren't you guys in NewTek checking newly made 3rd party tools? just Proton?) will continue showing mirrored elements that has been hidden by user to allow easier access to specific part of edited object..

And add flags indicating whether curve has start & end control point, also in polFlag().. It'll be PolygonHandler equivalent of MeshEditOp EDPF_CCSTART and EDPF_CCEND.. Without it EasySpline polygon handler won't have ability to show really smooth spline models, and when people will ask why, I will have to blame LW SDK, probably hundered time..

It's probably 5 time already when I am asking somebody working in NewTek to upgrade that part of LW SDK..

BTW, MeshEditOp has EDSELM_FORCEVRTS and EDSELM_FORCEPOLS in done() but there is no equivalent for edges...

02-14-2006, 01:38 PM
what is the difference of the reuslts when using RTMODE_REFLECTION or RTMODE_REFRACTION , if the position, direction is given?

Reflection is used on f.e. mirror.. Ray goes in completely different location, without penetrating surface that has been hit..

Refraction is used on f.e. water, and other transparent surfaces, Sub-Surface Scattering is example of refraction..

02-14-2006, 07:18 PM
Can i use GLSL for procedurals?

In LW8.5 realtime OGL2.0 GLSL was made possible for *SOME* LW procedurals. I don't see this reflected in the 8.5 or even now LW9SDK...

I would like to make all my procedurals work in realtime on my expensive videocard...... If NT programmers can make like 10 textures use it,
but don't allow me to make any of my own do the same thing,
what's the point of an SDK?


03-06-2006, 11:03 AM
Aloha Chuck,

I hope I'm not out of line asking, but I really could use the ability to remove an Expression from a Channel.

This would be a "Layout Command" since the SDK already provides the ability to create and apply Expressions to Channels using Layout Commands.

It would be greatly appreciated if you would consider this small request.

03-21-2006, 10:11 PM
Can we compile OSX plugins using XCode yet?
I was under the impression that lightwave was being converted be developed in Xcode.

Thanks, people really need this.