GLScene/id

From Free Pascal wiki
Jump to navigationJump to search

Deutsch (de) English (en) français (fr) Bahasa Indonesia (id) 日本語 (ja) 한국어 (ko) português (pt) русский (ru) 中文(中国大陆) (zh_CN)

Tentang

GLScene adalah librari 3D berbasiskan OpenGL. Awalnya ditulis untuk Delphi, sekarang berjalan dalam C++ Builder, Kylix, Delphi dan Lazarus.

Karakteristik utamanya adalah :

Deskripsi Scene

  • struktur obyek hirarkis, dengan banyak obyek sebanyak yang dibolehkan oleh memori, sangat mudah diperluas
  • manajemen scene interaktif (banyak para ahli Delphi)
  • mudah untuk menggunakan fungsi rotasi dan perpindahan untuk setiap obyek
  • obyek pradefinisi (semua standar dari kubus sampai teapot ke sprite), mudah diperluas
  • obyek struktural (kubus dummy, obyek proxy) untuk mengatur obyek gabungan
  • obyek prosedural (heightfield, revolusi tebal, pipa, tesselators...)
  • mendukung obyek 2D dan 1D (sprites, garis dengan dukungan spline) teritegrasi penuh
  • obyek HUD (sprites dirender dalam koordinat 2D)
  • obyek utilitas (jaring, skydome, panah...)
  • mendukung kelas untuk mengakses OpenGL secara langsung
  • kamera dan obyek cahaya yang dapat dipakai di mana saja dalam hirarki obyek scene
  • perilaku obyek dapat disertakan ke obyek untuk keperluan animasi, mudah diperluas
  • efek spesial per-obyek (sebelum/setelah merender obyek dan efek setelah scene), mudah diperluas
  • mendukung sistem partikel, setiap obyek atau struktur obyek dapat berupa partikel
  • mengimpor file 3D Studio dengan perhitungan vektor normal otomatis dan tepat (menggunakan *pelembutan grup file) dan mengimpor koodinat tekstur
  • Mengimpor format lain : OBJ/OBJF, SMD, MD2, STL, TIN, PLY

Material

  • mudah digunakan, dioptimasi, obyek material
  • librari material untuk berbagi dan pemakaian ulang material
  • dukungan ambient, diffuse, emission, specular dan shininess
  • dukungan mode blending (transparansi, aditif...)
  • pembuatan otomatis alpha-channel
  • dukungan untuk format tekstur OpenGL, termasuk yang dikompresi (DXT, S3TC dll.)
  • dukungan plug-in shaders generik
  • dukungan kelas Cg shaders tingkat tinggi
  • dukungan gambar polymorphic untuk tekstur (membolehkan format dan juga sebagai tekstur prosedural), dapat diperluas dengan mudah
  • lebih dari 150 warna pra-definisi seperti clrCornflowerBlue atau clrCoolCopper (dapat diperluas dengan mudah)
  • sebagai tambahan ke warna standar dan spesifikasi langsung RGBA
  • mudah menggunakan perpindahan tekstur dan properti skala, secara independen dari koordinat tekstur
  • dukungan kelas Bitmap 32 bit

Rendering

  • automatically uses the hardware OpenGL driver if available
  • a well working camera model using focal length and targeting
  • multiple viewers for one or more scenes, easy change of view through camera selection
  • fog and depth-of-view support
  • render to a file, a bitmap or to the printer in any color and pixel resolution
  • full screen support with dynamic resolution changes
  • reflections and mirror effects
  • dynamic shadow casting
  • high-performance scene-wide transparent particles system support
  • automatic frustrum culling (hierarchical or per-object)

Animasi

  • propagation of time progression events
  • skeletal animation (multiple bones per vertex)
  • frame interpolation and morph targets
  • easily extendable Behaviours
  • dynamic physics : inertia, acceleration, damping and force application
  • automatic, realtime scene cadenceing

Antar muka

  • easy-to-use functions to determine picked objects
  • helper functions for camera movements
  • helper functions for picked object's translation
  • helper functions for converting between screen and world coordinates, raycasting

Utilitas

  • optimized geometry functions and utilities (vector, quaternion and matrix...)
  • cubic spline support functions and class
  • mesh manipulation and optimization (stripification, vertex-cache awareness, etc.)
  • component to make full-featured screen-saver in a few clicks
  • precise frame speed determination
  • asynchronous timer (multi-threaded)
  • joystick support
  • asynchronous keyboard access, keymap support

Foto layar

Gl effect.jpg Gl cel.jpg Gl trinity.jpg
Gl ode.jpg

Pembuat

Pembuat: awalnya oleh Mike Lischke
saat ini dipelihara oleh Eric Grange
Peralihan LCL: Christian Ulrich

Download

Terbaru (v1.0.0.2)

This should be almost identical to the original cvs repository of today in terms of functionality and bugfixes, however, there are still some parts missing. There wont be a "Lazarus-with-GLScene-Installer" with this new release, unless someone else creates it. --Crossbuilder 20:16, 18 July 2007 (CEST)

Kuno

Rilis lebih lama (version 0.9.1.6) dapat ditemukan di halaman File Lazarus CCR bersama dengan instalator lazarus dengan GLScene already dalam Lazarus IDE dan GLScene demo. PEMUTAKHIRAN: Ini sangat lama sekarang. Jika memungkinkan, gunakan svn checkout (lihat di bawah).

SVN

anda dapat melakukan checkout ke sumber terbaru dari
http://svn.freepascal.org/svn/fpcprojects/glscene/trunk/

Perintahnya adalah:

svn co http://svn.freepascal.org/svn/fpcprojects/glscene/trunk glscene

Ini akan men-download repositori trunk (utama) ke direktori "glscene" kapan saja anda memanggil perintah itu.

Dalam windows anda dapat menggunakan klien seperti Tortoise SVN dan yang lainnya.

Pelaporan Bug

Bug Reporting/Featurerequest Please select Project "Packages" and Category "glscene" for your reports. Thanks.

Catatan Perubahan

  • 18.07.2007 rilis snapshot versi 1.0.0.2
    • penyesuaian beberapa hal, agar ia bekerja dengan versi lazarus svn terbaru
    • ditambahkan obyek bitmap untuk SceneEditor
    • fixed another AV in SceneEditor
    • disertakan semua patch dan pembetulan bug dari glscene cvs repo aslinya seperti tekstur dinamis ..
  • 13.06.2007 rilis Snapshot versi 1.0.0.1
    • disertakan semua patch dan pembetulan bug dari glscene cvs repo
    • ditingkatkan editor scene (tidak rusak, tapi masih memerlukan beberapa sentuhan)
      Tip: Simpan proyek anda lebih sering ;-)
    • ketergantungan mmsystem dipisahkan dari dukungan suara umum agar misalnya FMOD tersedia dalam linux, juga
    • banyak lagi ..
  • 01.12.06 Ditambahkan dukungan untuk ODE, gtk2 dan Cg shaders dalam Linux (ODE dibatasi ke rilis normal, cone tidak didukung, ccylinder dan terrains)
  • 10.08.05 Terlalu banyak perubahan untuk ditulis di sini lihat histori cvs
  • 16.07.05 Pengalihan GLScene 0.9.X
  • lihat di Akun GLScene Sourceforge untuk Catatan Perubahan lengkap

Status: Beta

Instalasi versi 1.0.0.2

Memerlukan fpc 2.1.4 atau lebih tinggi dan lazarus 0.9.23 rev. 11348 atau lebih tinggi !!

  • menguraikan sumber
    • ZIP:
      • in "lazarus/components/" folder execute "unzip glscene-1.0.0.2.zip"
        This will create the lazarus/componets/glscene/ folder
    • SVN:
      • in "lazarus/components/" folder execute
        svn co http://svn.freepascal.org/svn/fpcprojects/glscene/trunk glscene
        This will create the lazarus/componets/glscene/ folder
  • Finish the installation:
    • copy "lazarus/components/glscene/globallinks/*.lpl" to "lazarus/packager/globallinks/"
    • start lazarus
    • select "Configure installed packages ..." from the "Components" menu
    • select "glscenelazarus" from the "Available packages" list
    • click "Install selection" button
    • click "Save and rebuild IDE" button
    • repeat the last 4 steps for the other packages you want to use.
      • Note: glsceneode and glscenecgshader need their respective libs on the system during installation!
    • Note: you can also try to select and install all packages in one go. However, I prefer to do things step by step, so I see where it fails, if it fails ;)
    • Install "glscenelazarus" - mistakes:
      • To correct the unit GLLCLViewer: procedure TGLSceneViewer.CreateParams(var Params: TCreateParams); - at procedure TGLSceneViewerLCL.CreateParams(var Params: TCreateParams);
      • To correct the unit GLLCLViewer: procedure TGLSceneViewer.EraseBackground(DC: HDC); - at procedure TGLSceneViewerLCL.EraseBackground(DC: HDC);
      • To correct the unit GLLCLFullscreenViewer: Change "RegisterClasses([TGLSceneViewer, TGLFullScreenViewer]);" to "RegisterClasses([TGLFullScreenViewer]);"
  • List of packages:
    • glscenelazarus The main package.
    • glscenecgshader Cg Shader components
    • glsceneode ODE components
    • glss_fmodlaz FMOD component
    • gls_winonly Windows only, contains sound support over mmsystem, BASS support and GLScreenSaver component
  • Сompilation "demo" - mistakes:
    • If not found class - TGLSceneViewer: To correct the uses (demo): GLLCLViewer - at GLViewer

Installation version 0.9.6.1

  • Create the directory lazarus\components\GLScene
  • On this directory, unzip the files from the zip file
  • Open lazarus
  • Open the package glscenelazarus.lpk with Component/Open package file (.lpk) from lazarus\components\glscene\Lazarus
  • (Click on Compile is only necessary, if you don't want to install the component into the IDE)
  • Click on Install
  • Repeat these steps (open .lpk, click install) for the other packages you want to use. Note: these additional packages need additional libs (fmod, ode, Cg).
    • glscenecgshader.lpk : Cg shaders (only with NVidia cards?)
    • glsceneode.lpk : support for ode lib
    • glsss_fmodlaz.lpk : support for fmod lib
    • gls_winonly.lpk : this can be installed on windows only. Contains screensaver stuff as well as support for BASS lib.

Hint: sometimes an Error "GLGraphics not found" occurs. Don't worry, just do Tools->Build Lazarus again and it should be ok.

A full install of Lazarus with GLScene already in the IDE is available as binary win32 release or http://www.skinhat.com/lazarus

Just a warning for (new) Linux users: GLScene in its current state is not working "out of the box" (lots of modifications/additions needed). UPDATE: this is not true anymore. glscene for lazarus is pretty up-to-date and most things work good right out of the box for windows as well as for linux.

As of latest trunk version (see svn above) the linux version is working well. Some demos (about 20%) are still broken but the majority of glscene is now working. We're also moving towards making it work in other Unix platforms like FreeBSD.

The missing/nonworking parts on non-windows are: glKeyboard (uses winapi, but is not required mostly), glSound(which uses mm, we need to use openal or somesuch)

A fully featured windows installer is planned.

Bantuan