Most of the updates are concentrated on asset import and rendering: The Wavefront OBJ/MTL importer is very much improved, there have been bugs fixed in the Collada DAE/KMZ import, the renderer now does textured specularity properly, and there are a several new avatar representations: image-wedge, static OBJ meshes, and static KMZ meshes.
Look for new .ADST files in the contents directories to see sample avatars. There aere also a few added OBJ/MTL meshes to exercise the importer and renderer.
Cheers,
--John
====================Name: 3DTransform-jrd.27
Author: jrd
Time: 31 May 2015, 10:05:45 pm
UUID: 68d9bcd3-6a01-477a-8563-517e7b75d564
Ancestors: 3DTransform-mtf.26
Changed:
- Added asVector2 to Vector2 to return self. Makes the CoMeshGen happier
====================Name: Collada-jrd.67
Author: jrd
Time: 31 May 2015, 11:22:30 pm
UUID: 1498bf90-0e93-44c6-9a77-070abc71797f
Ancestors: Collada-jrd.66
Changed:
- Updated CoDOMMaterial to handle all the specified tyopes of techniques as best as our renderer can: phong, blinn, lambert, constant. Also tries to handle the 1.5 version of the Collada spec w.r.t Blinn and shininess values in the range [0, 1] where it assume blinn-cook-torrance and rescales the shiniess.
- Added mechanism so an import that doesn't need ambient for a material (constant technique) can force ambient to black without the ambient fixup trying to fix up.
- deprecated some old methods and renamed some to avoid collisions in the future.
- A bunch of work to make it so the importer doesn't throw an error if there are vertex colors specified in the DAE. Eventually this can be turned into parsing the vertex colors accurately, but if we drop the vertex colors from the next renderer it won't be worth the effort.
- If a material is missing from the file or the mesh doesn't have one specified (eg. if using vertex colors) then will sub in a default white material.
- Added an Avatar Representation for KMZ based avatars, not well tested,
====================Name: CobaltMorph-jrd.227
Author: jrd
Time: 31 May 2015, 11:24:05 pm
UUID: 80e1dba5-3cd5-4d6c-b963-929e401ba6d7
Ancestors: CobaltMorph-jrd.226
Changed:
- SystemProgressMorph class>>setCobaltColors now properly handles setting up a default instance if not present.
====================Name: Cobalt-Windows-jrd.36
Author: jrd
Time: 31 May 2015, 11:45:07 pm
UUID: fad7e5e8-c35f-44e5-b8b2-677ccad1d9a0
Ancestors: Cobalt-Windows-jrd.35
Changed:
- Gave all the materials used in a CobaltWindowFrame objectNames so debugging is easier.
- CoMeshGen wasn't working properly whn generating a TMesh with multiple faceGroups and quads. Fixed.
- CoMeshGen now has convenience methods for use when generating flat quads and tris where it will calculate the face normal for you.
====================Name: Croquet-Harness-jrd.247
Author: jrd
Time: 1 June 2015, 12:13:10 am
UUID: 715c8695-0322-40b5-b9c6-7181d512f0ff
Ancestors: Croquet-Harness-jrd.246
Changed:
- Error handler in dropping a model on the window was returning the wring thing.
- Logging OpenGl info at startup now shows the platform max shininess
- CroquetHarness>>materialForAvatarTextureContents now forces the specularity to nothing as the upstream change to the specularity rendering was sometimes showing specular highlights on image avatars.
====================Name: Croquet-Import-jrd.18
Author: jrd
Time: 1 June 2015, 12:24:03 am
UUID: 73b73ba8-3eb2-4201-a075-2b1894e5ed40
Ancestors: Croquet-Import-jrd.17
Changed:
- Many changes to the OBJ/MTL importer. Refactored, better texture map support, expansion joints for new functionalty when the renderer gets upgraded, smoothing now works on partially pre-smoothed meshes, portability options (Tr interpretation, flipping faces, flipping normals and flipping YZ), -ve indexing, slightly more optimized build process.
- Minor change to ase material construction to use a value of 0.5 for default shininess instead of 50. This bug was probably a hangiver from the 3DS import.
====================Name: Croquet-Objects-jrd.380
Author: jrd
Time: 1 June 2015, 5:14:03 pm
UUID: eb7a65c6-527c-43c9-8b25-ba45d375ffa3
Ancestors: Croquet-Objects-jrd.379
Changed:
- TAvatarUser avatar costume loading changed to reflect the new supported types.
- Added a new method: setup: to the base TAvatarRepresentation. It's usage is subclass dependent but intended to be a way to add rarely used configuration for the various importers.
- Added a new property to the base AvatarGraphicalRepresentation, colorId. This is intended to be an optional color that can be used to distinguish avatars without havint to make major changes to the assets.
- Addded a new avatar type, the image wedge. This is a vertically oriented triagular prism with a bright image on the forward sides and a tinted with the backColor image reversed on the back side. The front normals are set up to give the impresssion of a cylindrical curve, with the other sides being flat.
- There is a TImageWedge class and an new avatar representation (TAvatarImageWedgeRepresentation), of which theere are .adst samples in the content/avatar/images folder.
- Added TAvatarObjStaticRepresentation, a repn set up to use the OBJ/MTL importer (TLoadOBJ) to get it's avatar mesh. Uses colorId:. Uses setup:.
- TButton changed to better strip offf the coloringfrom the button mesh that was causing buttons to look not so good. It was then refactored for clarity. Later I want to tie it into some kind of theme objects.
- TCobaltColorCube not loger will colorize. It's a debugging object and should stay constantr for comparisions.
- There was a great quest through TMaterial and it's specularity/shininess problems. There were 2 issues:
1) because of the way the fixed function pipeline does specularity by defauIt, specular highlights were never visible on textured materials. This was fixed by putting a call in setupLights: to change the LightModel to render the specular highlight after texturing. This also made it more obvious that...
2) the wrong form of the glMaterial call was being used for a single float argument and this was causing the specularity to not make sense. The specular hightlights should now match the various plates in the redbook.
- added additional methos to set the shininess: mtlShinieness:, aseShininess: and oglShininess:. Like the names suggest, they are used with shininess values taken from various sources and do conversion into the internal values.
- A bunch of should-be-obsolete methods in TMaterial were moved into a new category for later evaluation.
====================Name: MenuUI-jrd.230
Author: jrd
Time: 1 June 2015, 5:32:05 pm
UUID: 3af8a62f-fd3e-4c39-a28b-c80435909484
Ancestors: MenuUI-jrd.229
Changed:
- Refactoring of TCollaborativeButton to leverage the refactored TButton. Essentially means deleting almost all the methods.
====================Name: MotionCapture-jrd.85
Author: jrd
Time: 1 June 2015, 5:38 pm
UUID: d3ca34fd-e806-4b1c-8529-8dc6a4e9579b
Ancestors: MotionCapture-mtf.84
Changed:
- Gave TJoint more distinct material (Bright Yellow) for when rendered.
====================Name: OpenGL-Core-jrd.21
Author: jrd
Time: 1 June 2015, 5:41:33 pm
UUID: d60e6c61-be71-48b4-94c0-1d11864c46d6
Ancestors: OpenGL-Core-mtf.20
Changed:
- Added initialize code for the NV_light_max_exponent extension.
- Added debugging methods to report the max shininess and spot exponent
====================Name: OpenGL-Pools-jrd.9
Author: jrd
Time: 1 June 2015, 5:44:08 pm
UUID: 497e7c84-0bcf-43b8-b9bd-09f872032818
Ancestors: OpenGL-Pools-jrd.8
Changed:
- Changes from rerunning the extension initialization after adding the NV_light_max_exponent extension.
--