Page 1 of 3

New plugin release

Posted: Mon Nov 05, 2007 11:58 pm
by Trylon
Currently in the trunk of the svn, there is a new version of PyPRP.

Among others, this version provides you with:
- A compleately new Material baack-end, allowing for:
- Setting Z offset through the blender material's Z-Offset box
- Two sided meshes
- Have objects show despite of fog (through the blender "NoMist" material option)

- A compleately rewritten camera support, which allows in the future for camera transitions and stuff

- A Redo of the importer related to materials, try importing an age, and put it in "shaded" mode...
- Imported ages no longer show uv/maps in "textured mode" - that is intentional, all layers are now imported into materials

- A new scripting engine - internally known as AlcScript - that already can be used to set certain advances Camera properties, and in the future will be used to set much more options.

- You can now use Blenders Bounds property (in the logic panel)to set the objects phyisical bounds.
- Refriction now defaults to 10 instead of 0.5, so no more unwanted sliding...

There's more, but I can't remember it at the moment ;)

EDIT:
While almlys' snapshots are still down, you can downlaod it here: http://ulm.hbyte.net/PyPRP/PyPRP-Nov-6-2007.zip

--Trylon

Re: New plugin release

Posted: Tue Nov 06, 2007 12:24 am
by Pryftan
..Hooray!

That was RIDICULOUSLY quick and responded to many of the concerns raised here. Amazing!

I'm assuming http://alcugs.almlys.org/shots/pyprp/latest.zip will work to get it?

Didn't work at first, for some reason it didn't recognize PyYAML which is odd because I did have it installed.. I wonder if other people will have the same trouble. Anyway, working now ;D

Am I right in saying the effect of lighting is much more pronounced now? Something to do with the way a material color used to "show through" the texture..

Re: New plugin release

Posted: Tue Nov 06, 2007 11:35 am
by Robert The Rebuilder
Well done, Trylon! You have certainly been busy these past few weeks (months), with the plugin changes as well as the ULM upgrade.

Note that Almlys has switched servers (see his post here), and that the snapshot directory is currently broken. But for those of you with subversion, you can get the latest image.

I walked through the changes and made notes so that I'm familiar with the new structures. For those that are interested, here are the differences since the last release (revision 849):

Code: Select all

A    src\alc_AlcScript.py
- Addition of AlcScriptNode and AlcScript classes

A    src\alc_CamClasses.py
- renamed local variable 'buf' to 'stream'
- plCameraModifier1 internal fields renamed
  - CamTransitionField changed to plCameraModifier1.CamTrans class
  - plCameraModifier1.read/write() now supports message queues
- plCameraRegionDetector
  - now inherits plDetectorModifier
  - new field fMessages stores plCameraMsg instances
- plCameraBrain1
  - now stores POA offset as a vertex
  - internal fields renamed
  - export_obj() now makes use of an AlcScript object which can specify POA offset, follow avatar flag, pos cut/once flag, POA cut/once flag
- plCameraBrain1_Fixed
  - constructor now takes type field
  - internal fields renamed
- plCameraBrain1_Circle
  - constructor now takes type field
  - internal fields renamed
  - new field for circle flags
  - center fields now represented as a vertex
  - export_obj() now makes use of an AlcScript object which can specify the circle distance or the follow avatar flag
- plCameraBrain1_Avatar
  - constructor now takes type field
  - internal fields renamed
- plCameraBrain1_FirstPerson
  - Now inherits plCameraBrain1_Avatar
  - constructor now takes type field
  - internal fields renamed

A    src\alc_MatClasses.py
- dump() methods removed
- hsGMatState added
- hsGMaterial
  - internal fields renamed
  - getBlenderMaterial() renamed to ToBlenderMat() and the logic is reworked; now handles NOMIST mode
  - the logic from export_mat() was transfered to FromBlenderMat(); now supports SHADOW material and TWOSIDED mesh mode, and NOMIST mode
  - export_mat() invokes FromBlenderMat()
  - getBlendFlags() renamed to RenderLevel()
  - new accessor method for the ZBias
  - getTextureCount() renamed to TexLayerCount()
- plLayerInterface
  - Many fields added to this class
- plLayer
  - internal fields renamed
  - added ToBlenderMTex(); has comment that twosided is not working in Blender 2.45
  - export_tex() renamed to FromBlenderMTex()
  - export_uvtex() renamed to FromUvtex()
- plBitmap
  - added internal structures
  - internal fields renamed
- plMipmap
  - internal fields renamed
  - SetConfig() added
  - getBlenderImage() renamed to ToBlenderImage()
  - ToBlenderTex() added
  - FromBlenderImage() added
  - setRawTexture() renamed to FromRawImage(); has new logic for determining DXT compression type
  - setBlenderTexture() renamed to TexCache_GetFilename(); texture cache code now in various TexCache_* methods
- plCubicEnvironmentMap
  - internal fields renamed
  - getBlenderCubicMap() renamed to ToBlenderCubicMap(), now makes use of texture cache functions
  - setBlenderCubicMap() renamed to FromBlenderCubicMap(), now makes use of texture cache functions
- added plRenderLevel

U    src\alcGObjects.py
- whitespace changes only

U    src\alc_AbsClasses.py
- plBitmap removed
- plDetectorModifier fields renamed
- plCollisionDetector field renamed
- plConditionalObject fields renamed
- plLayerInterface removed
- plLightInfo fields renamed
- plLogicModBase fields renamed

U    src\alc_Classes.py
- renamed local variable 'buf' to 'stream'
- replaced some literal constant values with named bit flags
- plSceneObject.lightobjs added, used for importing plPoint/DirectShadowMaster
- plMipMap moved to alc_MatClasses
- plCubicEnvironmentMap moved to alc_MatClasses
- plLayer moved to alc_MatClasses
- hsGMaterial moved to alc_MatClasses
- plSimulationInterface fields replaced with hsBitVector
- plHKPhysical: replaced defaults for friction coefficient and collision format
- plViewFaceModifier fields renamed
- plDirectionalLightInfo:
  - These properties are no longer supported: alpha1, alpha2, a, b, c, flags
  - Now makes use of the Blender lamp modes Negative, NoDiffuse, NoSpecular, (Note: these lamp modes are not set upon import)
  - When setting lamp modes NoSpecular and NoDiffuse, the light becomes an ambient light
  - The lamp's energy field is now used as a scalar for the lamp's color
- plOmniLightInfo:
  - Now makes use of the Blender lamp modes Quad and Sphere
  - The lamp's distance field is now used as a scalar for the quadratic and linear attenuation coefficients
  - internal fields renamed
- plSpotLightInfo
  - The "uk11" property is no longer supported
  - Now makes use of the Halo lamp mode; when enabled, it uses Blender's HaloInt field for the falloff (otherwise, it uses 1)
  - internal fields renamed
- plShadowCaster removed
- plVolumeSensorConditionalObject
  - No longer supports "invol_enter/exit" properties
  - now inherits plConditionalObject instead of hsKeyedObject
  - internal fields renamed
- plObjectInValumeAndFacingDetector added
- plLogicModifier internal fields renamed
- plFacingConditionalObject internal fields renamed
- plShadowMaster added
- plShadowCaster added
- plPointShadowMaster inherits plShadowMaster
- plDirectShadowMaster added
- plCameraModifier1 moved to alc_CamClasses
- CamTransitionField moved to alc_CamClasses
- plCamRegionDetector moved to alc_CamClasses
- plCameraBrain1 moved to alc_CamClasses
- plCameraBrain1_Fixed moved to alc_CamClasses
- plCameraBrain1_Circle moved to alc_CamClasses
- plCameraBrain1_Avatar moved to alc_CamClasses
- plCameraBrain1_FirstPerson moved to alc_CamClasses

U    src\alc_Messages.py
- plMessage
  - type added to constructor
  - internal fields added
  - IMsgRead/Write methods added
- plCameraMsg added
- plCameraConfig added
- MsgKeyToMsgName() added

U    src\alc_hsStream.py
- whitespace changes only

U    src\alcdraw.py
- plDrawableSpans:
  - sanity checks removed from read()
  - import no longer sets UV maps
  - import sets "proj*" properties
  - export no longer supports "light" flags
  - export now provides specific type of light that affects the mesh
  - export now uses the "proj*" properties to affect the mesh

U    src\alcdxtconv.py
- renamed myColor to tColor
- renamed myImage to tImage

U    src\alcprpfile.py
- PrpObject now supports plShadowMaster, plPointShadowMaster, plDirectShadowMaster, plObjectInVolumeAndFacingDetector
- PrpFileInfo.read() no longer prints page/version info

U    src\alcresmanager.py
- alcUruPage.preLoad() output suppressed
- alcUruPage.import_all() no longer produces temporary age/page directories containing raw files
- alcUruPage.export_all() no longer imports raw files
- alcUruPage.export_all() now supports Blender lamp mode "RayShadow" by creating the appropriate shadow master object
- alcUruPage.export_all() now supports Blender object rigid body bounds type (found on Logic panel) to indicate the collision type for the mesh
- Changes to support internal field renames
- alcUruPage.export_all() restructured formation of spans name to make use of plRenderLevel and z-bias
- alcUruPage.export_all() now creates a shadow caster when the Blender material's SHADOWBUF mode is activated
- camera brain logic moved to cameramod.export_obj()

U    src\alcrespmod.py
- fixed bug where raw data (if it exists) was not written

U    src\alcxmllogic.py
- Changed traversal of parsed XML data to print the nodes recursively

U    src\alcxmlparser2.py
- whitespace changes only

U    src\pyprp.xml
- vertex/texture compression now enabled by default

Re: New plugin release

Posted: Tue Nov 06, 2007 11:52 am
by Pryftan
Ah.. I got it with my subversion client, I just put the link up for people without it. Guess it won't work though..

And yeah, lots of lighting changes. I'll need to experiment with the new functionality..

Re: New plugin release

Posted: Tue Nov 06, 2007 1:01 pm
by Goofy
so how do we get it, if we dont have the subversion client?

Re: New plugin release

Posted: Tue Nov 06, 2007 2:16 pm
by Robert The Rebuilder
For now, you can download it here: latest.zip

Re: New plugin release

Posted: Tue Nov 06, 2007 2:18 pm
by Trylon
Or at the download location which I added to the original post :D

You've been busy too Robert, even caught some changes I had already forgotten about :)

Next part will (unfortunately) probably be a rewrite of the DrawableSpans and related code - something I look towards with mixed feelings:roll:

Re: New plugin release

Posted: Wed Nov 07, 2007 5:22 am
by Robert The Rebuilder
I don't envy you on the DrawableSpans task. I laughed out loud when I saw your "I HATE THIS CODE" comment. :lol:

Is it safe to say that the plugin now supports shadows?

*me awaits answer with bated breath*

Re: New plugin release

Posted: Wed Nov 07, 2007 6:29 am
by Trylon
Well, I thought it would support shadows, but appearently more is needed beyond adding the shadowcaster objects,
and I don't yet know what that is.

I'm sorry to disappoint you

Re: New plugin release

Posted: Wed Nov 07, 2007 8:56 am
by Paradox
Robert The Rebuilder wrote:I don't envy you on the DrawableSpans task. I laughed out loud when I saw your "I HATE THIS CODE" comment. :lol:


I second that comment >.>