forked from stuartcaunt/isgl3d
-
Notifications
You must be signed in to change notification settings - Fork 2
/
ChangeLog
309 lines (267 loc) · 19 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
Current branch 1.3.0 (2012-01-23)
Project migrated to the latest Xcode version 4.3 and LLDB instead of GFB, tested with iOS 5.1
iOS Deployment target changed to 4.3, older iOS versions will no longer be supported
New math code with changed function naming (conforming to the Apple coding style guidelines), old functions are deprecated and are no longer supported.
More VFP/NEON accelerated matrix and vector functions
GLKit compatible math code
Normal mapping support (OpenGL ES 2.0 only)
Shadow mapping support (OpenGL ES 2.0 only)
iSGL3D Framework project
Version 1.2.3 (2011-11-26)
Fix compiler bugs in template for Xcode4.2.
version 1.2.2 (2011-08-13)
GesturesDemoView added to illustrate gesture recognizers.
Isgl3dPODImporter: Fixed bug on loading non-mesh nodes
ccBridge::AppDelegate: Fixed bug on event capturing.
ActionsDemoView added to illustrate action animation.
Isgl3dAction (and sub-classes): added as an alternative means of animating nodes.
ShaderMaterialDemoView added to illustrate how to integrate custom ES2 shaders.
Isgl3dShaderMaterial, Isgl3dCustomShader : Added to framework to allow custom OpenGL ES2 shaders to be more easily integrated.
OpenGL ES2 generic shader bugs : fixed by Holger
Isgl3dTextureMaterial: Add API to create textures from UIImages (thanks to Viktor)
Isgl3dNode: added gesture recognizer api
AntiAliasing using MSAA frame buffer implemented (Holger Wiedemann)
Isgl3dGestureManager added: UIGestureRecognizer handling added to nodes (Holger Wiedemann)
Isgl3dPVRLoader added: handles all PVR texture formats (Issue #1) (Holger Wiedemann)
Bugs with OpenGL ES 2.0 (errors from textures) fixed (Issue #6) (Holger Wiedemann)
Updated to PowerVR SDK 2.0.8
Allow nodes from PODs to be reused any number of times on a scene
Added device auto-rotation handling
version 1.2.1 (2011-06-24)
Isgl3dPODImporter: fix bug in Isgl3dPODImporter for models without UVs (Issue #5)
Isgl3dParticleGenerator/Isgl3dParticlePath: Bug fixes (thanks to Massimiliano Rossi)
Isgl3dCamera: allow camera to be fixed to local frame of reference, can be manipulated like normal Isgl3dNode (use isTargetCamera = NO)
Isgl3dDirector: Fix bug on resume, reset delta time to 0
Isgl3dRender1/Isgl3dGenericShader: Fix bug with lighting when using views with and without light sources
Isgl3dBillboardNode: Fix bug when using billboard node in scene graph
Isgl3dTextureMaterial: simplified init API using default precision/no repeat
Isgl3dGLTextureFactory: textures from non-factor-of-2 images (relevant uvs still need to be handled for meshes though)
Added support files for integration with Cocos2d
Isgl3dDirector: modified to allow UIViews (with OpenGL frame/render buffers) from other frameworks
version 1.2.0 (2011-05-04)
Isgl3dPODImporter: fix bug in Isgl3dPODImporter (Issue #3)
Isgl3dView: add method to convert 3D world position to 2D viewport point
Tests added for keyframe mesh with primitive data and imported pod data
Isgl3dKeyframeMesh: added to provide keyframe vertex animation of meshes
Added touch event handling to particles (implementation with help from Massimiliano Rossi)
Isgl3dBillboardNode: modified to use meshes instead of particles. Use Isgl3dParticleNode for previous functionality.
Isgl3dBillboard: removed. Use Isgl3dBillboardNode with any mesh
TerrainPhysicsView: added demo of using a bullet height field terrain
Isgl3dNode: use enums for occlusion mode
Isgl3dSingleTouchFilter: fix bug in eventIds being released too early
Isgl3dPODImporter: moved into main isgl3d target (keep .h from isgl3d.h to remove objective-m compilation errors)
Added Xcode 4 templates, updated Xcode 3 templates
Added demos for spring and follow cameras
Isgl3dFollowCamera: fix bug in Isgl3dFollowCamera (Issue #2)
Remove deprecated methods
Isgl3dQuaternion: added
Isgl3dNode: optimising recalculation of matrices
Isgl3dNode: added pitch, yaw and roll to facilitate rotation of object about its local coordinate system
Isgl3dNode: added properties for rotation, scale and position. Rotation can now be set independently along different axes
Isgl3dNode: translate deprecated (will be removed in v1.2). Use setTranslateByValues
Isgl3dNode: setTranslation deprecated (will be removed in v1.2). Use setPosition
Isgl3dNode: remove ambiguity from method names involving translation:
"translate" is along is in the frame of reference of the object
"position" is the coordinate position of the object ignoring rotational effects
Hardware accelerated matrix operations using VFPmathLibrary (ARMv6) and math-neon library (ARMv7) added (implemented by Holger Wiedemann)
NSCopying protocol implemented for principal node types
version 1.1.5 (2011-04-11)
Isgl3dTexturePrecision enum added to replace #defines (int) - other to become deprecated in v1.2
Static methods for allocation (autorelease) and initialisation in all framework classes. Modifications accordingly internally and to tests
Isgl3dShader: output error message when shader files not found
Isgl3dLight: Fix bug in initWithColorArray
Isgl3dColorUtil: Fix rounding problem when creating NSString from rgb/rgba colors
Isgl3dArray: added as container for any data type not just objective c objects (eg structs).
Isgl3dNode: added clarity to method names involving transformations
Isgl3dVector3, Isgl3dVector4, Isgl3dMatrix4: added and used in all internal calculations (performance gain)
Isgl3dMatrix4D: deprecated. Use Isgl3dMatrix4 structure with c methods to store/manipulate 4D matrices (performance gain)
Isgl3dVector4D: deprecated. Use Isgl3dVector4 structure with c methods to store/manipulate 3D vectors (performance gain)
Isgl3dVector3D: deprecated. Use Isgl3dVector3 structure with c methods to store/manipulate 3D vectors (performance gain)
Isgl3dMiniMat: deprecated. Functionality now in Isgl3dMatrix4
Isgl3dMiniVec: deprecated. Functionality now in Isgl3dVector3 and Isgl3dVector4
Isgl3dGLObject: removed - functionality added to Isgl3dNode (Isgl3dGLObject was a redundant internal class)
Isgl3dNode: added isVisible property to allow nodes not to be rendered but remain in scene
Added support for retina display
version 1.1.4 (2011-03-31)
Isgl3dColorUtil: fix bug in returning rgb and rgba hex strings
Isgl3dView: default isOpaque = NO (improved rendering, simplify UI overlay)
Isgl3dView: default background color to Isgl3dDirector background color
Isgl3dView: fix bug in combined device + view orientation
Demos and tutorials updated for new architecture
Added viewport test demo
Isgl3dDirector, Isgl3dView: allow orientations as landscape or portrait (eg Isgl3dOrientationPortrait)
Isgl3dPODImporter: modified for new architecture, remove dependence on Isgl3dView3D (deprecated)
version 1.1.3 (2011-03-28)
Architecture changes with Isgl3dDirector and Isgl3dView:
Isgl3dDirector: added - singleton for application control, manging animation, rendering, event handling, device rotation, etc
Isgl3dView: added - replaces Isgl3dView3D and Isgl3dGLView (with help of Isgl3dDirector). Contains a camera, scene and viewport.
Isgl3dBasic3DView and Isgl3dBasic2DView: added - helper classes, inheriting from Isgl3dView constructing camera and scene.
Isgl3dEAGLView: added - replaces Isgl3dGLView, user views no longer need to inherit from this.
Isgl3dScheduler: added - used for callbacks at each frame. Replaces updateScene in Isgl3dView3D.
Isgl3dFpsRender: added - used by Isgl3dDirector to render the framerate automatically.
Multiple Isgl3dView can be rendered on same window, each with an optional viewport and orientation
Opaque/transparent Isgl3dView: opaque can have background color, transparent used as an overlay (eg 2D user interface).
Background color in Isgl3dDirector (opaque Isgl3dView can specify different background color).
Full device rotation for portrait, landscape left, landscape right and portrait upside down
OpenGL version handling: Remove need for isgl3d.plist - can be handled programatically.
UITouch events: can be filtered for Isgl3dView viewports.
Shadow technique desired handled by Isgl3dDirector.
Occlusion testing handled by Isgl3dView.
Improved application control with run/end/pause/resume in Isgl3dDirector.
Isgl3dTouchScreenResponder: "touches cancelled" added.
Conversion of UI pixel to point in view (handling viewport dimensions and orientation)
Isgl3dGLU: orthographic projection with y inverted - (0, 0) now bottom left not top left.
Isgl3dGLU: projection matrix calculations for any device orientation.
Isgl3dColorUtil: support for rgba hex strings.
isgl3dSandbox.xcodeproj, tests/sandbox added for development testing.
Isgl3dGLView: deprecated. Will be removed in v1.2
Isgl3dView3D: deprecated. Will be removed in v1.2
Isgl3dFpsDisplay: deprecated. Will be removed in v1.2. Functionality in Isgl3dDirector.
Isgl3dFpsTracer: deprecated. Will be removed in v1.2. Functionality in Isgl3dDirector.
Isgl3dUIView: deprecated. Will be removed in v1.2. Functionality can be obtained by Isgl3dView (eg Isgl3dBasic2DView).
Fix initialisation semantics bug (self = [super init]).
Isgl3dBillboard: added (wrapper to Isgl3dGLParticle)
Xcode: added target to build all
Isgl3d events: remove dependency on Isgl3dView3D
OpenGL ES 2.0: generic shader runtime behaviour fixes (appearing in iOS 4.2?). All but spot-lighting working.
Isgl3dColorMaterial: properties for colors and shininess
Isgl3dCamera: remove dependency on Isgl3dView3D
version 1.1.2 (2011-02-28)
Fixed bug in orthographic projection matrix when in portrait mode
Added Isgl3dFpsDisplay to utils
Added Xcode project template for iSGL3D application
Added tutorials to included tests and added simple augmented reality test
Updated bullet physics library to 2.77
version 1.1.1 (2011-02-01)
Open source release.
Moved pvr tools to external folder and moved importers and physics back to isgl3d classes. Include bullet physics library.
Added MIT license to all files.
Remove internal headers and watermark/license
version 1.1.0 (2010-09-13)
GLView no longer performs the animation (allowing users more control): drawView must be called at each frame.
version 1.0.12 (2010-09-08)
Added Isgl3dLog: use instead of NSLog.
Add categories for internal API of isgl3d.
Handle license keys for iSGL3D. Display watermark if key not ok.
Watermark appears then disappears for 60 seconds.
All code documentation finished.
version 1.0.11 (2010-07-21)
Refactoring: - All classes now prefixed by Isgl3d.
version 1.0.10 (2010-07-07)
Add boolean "interactive" to Node so that only certain, user-specified elements are rendered for capturing touch events.
Fix build-and-analyze bug.
Stencil buffer using packed depth/stencil buffer for iOS4. If not available use separate buffers.
version 1.0.9 (2010-06-19)
Add optional cutoff tilt angle for rotation value with Accelerometer: Very sensitive rotation at low tilt angles.
Remove need to specify compressed images files: looks simply for pvr extension.
Addition of MiniVec3D, a pure c struct with associated c functions for manipulation. The objective is to improve performance and avoid creation of thousands of vector objects.
Performance improvements: initialise mesh data arrays (FloatArray, UShortArray) with specific sizes calculated by each primitive. Reduce number of Matrix4D creations.
Performance improvements: - Added MiniMat struct (like for MiniVec) to improve some matrix calculations.
version 1.0.8 (2010-06-10)
Allow ui components to be centered
Added CubeSphere primitive: aims to map spherical texture maps onto a cube. Useful for skyboxes. Also provides a single mesh for a cube.
Added TerrainMesh: create 3D relief terrain from an image file. Use specific colour channel in an image as offset in y (x and z calculated as a grid on a plane)
Allow GLUIImages to be created with a rectangle specifyied to crop the texture material associated.
version 1.0.7 (2010-05-15)
Add enable/disable lighting per node (enabled by default).
Added Goursat's surface as primitive (rounded cube)
Bug fixes picked up by "build and analyse" tool in xcode.
Fix bug in Tweener reset: must stop animation before releasing instance otherwise tweens can still occur after reset.
version 1.0.6 (2010-04-22)
Added GLUIImage: similar to GLUIButton but has configurable width and height: not intended for user interaction.
Add check in GLUILabel for text change before creating texture.
Added GLUIProgressBar.
Add "visible" flag to GLUICompontents (not rendered if not visible)
version 1.0.5 (2010-04-19)
Improve planar shadows: render before and after transparent objects to ensure that transparent nodes containing shadow-node correctly render shadows.
Add translation along a Vector3D.
Add ellipsoid mesh and allow event capture only from UI.
Fix bug in particle color in VBOData (was fixed as white before).
version 1.0.4 (2010-04-14)
Added ovoid primitive
Set real positions of UIComponents with X and Y starting from top left of screen.
Added SpringCamera: similar to FollowCamera except that it uses the transformation matrix of its target as a frame of reference.
version 1.0.3 (2010-03-28)
Architecture changes.
GLUILabel rendered correctly with text of specific size and font. Text can be modified dynamically.
Fix some memory management bugs.
version 1.0.2 (2010-03-26)
Added FollowCamera: follows the movement of a target node with simple spring/friction physics for the movement.
Allow materials to be set dynamically to MeshNodes.
Addition of TextMaterial and GLUILabel.
Added FollowNode: Allows a node to simply follow the movement of another node but without being under the influence of the rotation matrix of the other.
Added applyForce to PhysicsObject3D.
version 1.0.1 (2010-03-14)
Creation of static library.
version 0.99.16 (2010-03-12)
Added functions to obtain current rotation and scale values from a transformation matrix.
Added camera controls for fov, zoom and focus.
Added cone and torus primitives.
Added cylinder and arrow primitives.
Moved touch event handling to separate class: TouchScreen. Allows for more independent handling of touch events outside of View3D.
version 0.99.15 (2010-03-07)
Integrate simple 2D GUI facility: allows for adding buttons to screen for simple user interactions.
Accelerometer integration: Added Accelerometer singleton to handle all iphone accelerometer values. Gravity vector calculated using low pass filter.
version 0.99.14 (2010-03-05)
Optimise transformation matrix recalculations: Set "dirty" flag when a matrix needs to be updated.
Allow override of textures used in pod files: need to be specified before objects are added to the scene.
Added timer to AnimationController to automatically animate a skeleton.
Modified camera to allow for ortho projections.
version 0.99.13 (2010-02-28)
Vertex skinning in ES 1.1 and ES 2.0: added POD support to read animation/bone/skinning date from POD files.
version 0.99.12 (2010-02-21)
Modifications to materials: TextureMaterial inherits from ColorMaterial allowing more precise control of underlying color.
Full parsing of POD data and creation of complete scene from contained objects (and transformations), materials, textures, etc.
Added directional lighting. If w component of light position is zero then it is considered as directional.
Add lights and cameras imported from POD file. Add constant and linear attenuation factors to lights.
Nodes architecture implemented. Scene graph is now composed of nodes. Allows meshes and materials to be fully re-usable in different nodes. VBO should not be swapped as much in GPU.
Stencil buffer used for planar shadow rendering. Shadows can now be fixed to specific meshes (nodes) rather than being rendered on an infinite plane and stops z-fighting between super-posed shadows.
Addition of spot lighting.
version 0.99.11 (2010-02-11)
Modify planar shadow rendering: render shadows before other transparent objects (assume they are always behind), render using textures if necessary to account for alpha culling.
Change VBO structure (combine into array of structures) to try to improve performance. Also needed for POD data.
Start of POD support: read in POD file using Imagination Technologies PVR tools. Convert SPODMesh into usable GLMesh.
version 0.99.10 (2010-02-05)
Simple integration of bullet physics engine. Use MotionState to update rendered object transformations.
version 0.99.9 (2010-01-30)
Improved performance in ES 2.0 using pre-processor directives in glsl shaders.
Planar shadows added in ES 1.1 and ES 2.0. User can specify which plane to cast to.
version 0.99.8 (2010-01-23)
Start of shadow mapping in ES 2.0.
version 0.99.7 (2010-01-17)
Memory management: Clear all xcode analysis problems. Major re-working of Renderer architecture.
Add precision modifier to creation of textures (low, medium or high).
Occlusion transparency running in ES 1.1 and ES 2.0. Allow objects in front of camera target (lookAt) and within a specified angle to have increased alpha.
version 0.99.6 (2010-01-09)
Added particles and particle systems in ES 1.1
Memory management. Ensure that all objects are released/autoreleased/retained correctly.
Added particle generators
Improve particle generation performance on iPhone.
Allow glContext version to be specified in the isgl-options.plist file, or if not specified, use the capabilities of the iphone.
Particles/sprites in ES 2.0. Start of creating generic vertex/fragment shaders.
Consolidate ES 2.0 renderers. Single generic renderer used to provide ES 1.1 fixed-pipeline functionality. Better handling of renderer states.
Particle size attenuation in ES 2.0. Improved reliability of generator animation (no longer dependent on real-time).
version 0.99.5 (2009-12-19)
Tweening functionality added.
version 0.99.4 (2009-12-17)
Added "discard" to opengl ES 2.0 renderers for alpha testing.
Better renderer state handling. textureEnabled and backCullingEnabled handled per object rather than globally.
Added Z-sorting option for transparent objects. During second stage rendering (non-opaque), order transparent objects by the distance of their origins to camera before rendering.
Added extra render pass: render opaque objects followed by transparent ones. Allow user to specify per-object alpha testing to "discard" pixels whose alpha is less than or equal to given value.
version 0.99.3 (2009-12-13)
Object interaction added. Can now add Event3D listeners to Object3Ds.
Added single touch filter as utility for users just wanting to detect single touches.
Added double-sided planes, alpha testing, texture transparency and UV Map.
version 0.99.2 (2009-12-06)
OpenGL ES 1.1 development: refactoring and creation of 1.1-specific classes. Texture mapping in ES 1.1.
Lighing in ES 1.1 and handling of different client states.
Specular lighting added to textures + perf improvement.
Scene graph implemented, rendering loop modified. Start of camera and object containers.
version 0.99.1 (2009-11-25)
Start of project using OpenGL ES 2.0
Start of primitives and materials
Renderers: handling of rendering (inluding loading shaders, getting attribute and uniform locations) passed to RendererManager and GLRenderer. Spinning sphere example.
Depth render buffer added to frame buffer.
Added lighting and texture mapping.
Added landscape mode and fragment shader lighting.
Added ColorMaterial.