-
Notifications
You must be signed in to change notification settings - Fork 9
OpenGL ES 1.1 3D engine for iOS. Based on the Blitz3D engine.
si-design/iminib3d
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
iMiniB3D v0.6 ------------- By Simon Harrison Email: si@si-design.co.uk Twitter: @si_design iMiniB3D Terms of Use --------------------- You are free to use iMiniB3D as you wish. If you do anything cool with it please let me know, and a credit in your published app/game would be very much appreciated! iMiniB3D Info ------------- You will more than likely need a good grasp of C++ to use iMiniB3D effectively. There's no iMiniB3D-specific documentation except what you're reading at the moment. Please see the header files for a list of available functions. There's mostly the same functions available as in MiniB3D for BlitzMax, with a few differences here and there. See 'MiniB3D -> iMiniB3D Differences' below. See the Blitz3D online manual at www.blitzbasic.com for Blitz3D documentation (which MiniB3D and iMiniB3D is based on) iMiniB3D is objected-oriented. There's no procedural interface available like there is for MiniB3D. So instead of PositionEntity(entity,x,y,z), you must always use entity->PositionEntity(x,y,z). For the 'Create' commands, static functions are used, e.g. Mesh* mesh=Mesh::CreateMesh(), Sprite* sprite=Sprite::CreateSprite() Please feel free to email me at si@si-design.co.uk about anything. I will try to help if possible. Hints and Tips -------------- By default the OpenGL view is displayed in portrait mode For landscape mode, rotate your camera on the z axis by 90 degrees - e.g. cam->RotateEntity(0,0,90) For best camera FOV, you will need to change your camera's CameraZoom - for Portrait set it to 1.75, for landscape set it to 1.5 MiniB3D -> iMiniB3D Differences ------------------------------- + iMiniB3D features built-in support for dynamic sphere -> dynamic mesh collisions - set any destination mesh's 'dynamic' flag to true to activate. See test app for example. Don't expect miracles, however! - Spheremapping, cubemapping not available in iMiniB3D - Anim textures not supported in iMiniB3D ~ TextureFilter has been renamed to AddTextureFilter in iMiniB3D ~ CopyEntity fully copies a mesh, so there is no shared surface data like there is in Blitz3D. You now cannot use the Mesh commands to affect all copied entities that share the same surface data v0.6 ---- added iPhone 5 display support replaced CreateCube/Sphere/Cylinder/Cone functions with actual Blitz3D code - more efficient v0.5 ---- new project structure for Xcode 4 added retina dislay support added new EntityBlend mode - no. 4, pre-multiplied alpha - use this for drawing sprites without black edges added teapot example - performs software sphere mapping - slow! changed Global::Graphics - now defaults to screen size of device fixed FreeEntity bug - freeing anim meshes directly would cause a crash fixed FreeEntity bug - freeing lights would cause a crash fixed Game::End bug - ClearWorld was called twice fixed Camera::Update mem leak - was not freeing new matrix fixed CopyEntity mem leak - mem leak when copying meshes and sprites - thanks to ima747 fixed iOS 5/LLVM problems with LoadAnimMesh/LoadMesh - thanks to Yasha v0.4 ---- added EntityAutoFade to entity.mm added AnimSeq, AnimLength, AnimTime and Animating to entity.mm added LoadBank, PokeString, PeekString to bank.mm changed Global::Graphics - added optional width and height parameters for iPad support. Defaults to iPhone screen size. changed LoadAnimB3D - now loads from bank instead of file - faster changed Global::UpdateWorld - split into UpdateCollisions and UpdateAnimations, which you can call separately fixed CameraPick bug - first CameraPick didn't work fixed banks bug - peeking/poking didn't always work correctly v0.3 ---- fixed Rnd, Rand tidied string helper commands, added Split added MeshColor, MeshRed, MeshGreen, MeshBlue, MeshAlpha and SurfaceColor, etc, commands for setting all vertex colors in a mesh/surface at once optimised Mesh->Render() so that less OpenGL funcitons calls are made fixed AddMesh - was adding duplicate triangles. fixed ClearWorld - didn't work added applicationWillTerminate method to application delegate, which calls game->End() just before program quits changed ReadFile/WriteFile - they now return a NULL File object is unsuccessful, rather than ending program fixed Millisecs - didn't work fixed CopyEntity bug - meshes are now fully copied - i.e. no shared surface data. fixed EntityScaleY bug (non-global call returned EntityScaleX) added TextureFilter functions (TextureFilter renamed to AddTextureFilter) added recursive flag to all entity material functions added EntityRed, EntityGreen, EntityBlue for when you wish to set entity color components separately added 'sprite batch rendering' - will render all sprites using the same texture at once, using a single surface. To activate, use SpriteRenderMode sprite,2 v0.2 ---- added Rnd, Rand, SeedRnd added CameraProject, ProjectedX/Y/Z reenabled vbo=true as default behaviour reenabled LoadMesh. LoadAnimMesh was used in place before added UpdateAllEntities, for faster UpdateWorld/RenderWorld - instead of iterating through every entity, only 'root' entities are iterated through (attached to hidden 'root root' entity) and their children - if an entity is hidden, that entities' children aren't iterated through added file write functions added CopyEntity added CreateCone added Tilt functions - see tilt app added various Touch functions fixed FreeEntity bug - camera wasn't being freed from camera list added SpriteViewModes 3,4 fixed Instr bug renamed text to string_helper and helper to maths_helper added CountAllChildren, GetChildFromAll added FindEntity fixed FreeEntity bug added missing picking commands fixed blue ambient light bug added Texture::CreateTextTexture added EntityClass added mipmapping
About
OpenGL ES 1.1 3D engine for iOS. Based on the Blitz3D engine.
Resources
Stars
Watchers
Forks
Packages 0
No packages published