GLScene/pt
│
Deutsch (de) │
English (en) │
français (fr) │
Bahasa Indonesia (id) │
日本語 (ja) │
한국어 (ko) │
português (pt) │
русский (ru) │
中文(中国大陆) (zh_CN) │
Sobre
GLScene é uma biblioteca 3D baseada em OpenGL. Foi escrita inicialmente para Delphi, agora está rodando em C++ Builder, Kylix, Delphi e Lazarus.
Suas características principais são:
Descrição do Cenário (Scene)
- Estrutura de objetos hierárquica, com tantos objetos quanto a memória permitir, facilmente expansível.
- Interatividade com o gerenciamento da cena (vários peritos em Delphi).
- Fácil de usar as funções de rotação e movimentação para cada objeto.
- Objetos pré-definidos (todos os padrões do cubo para a chaleira, depois para sprite), facilmente expansível.
- Objetos estruturados (cubo falso (dummy cube), objeto representante (proxy object)) para gerenciar objetos compostos.
- Objetos processuais (altitude raio de visão (heightfield), sólidos de revolução, tubos (pipes), tesselators...).
- Suporte completamente integrado a objetos 2D e 1D (suporte a sprites, linhas e spline).
- Objetos HUD (sprites renderizados em coordenadas 2D)
- Objetos Utilitários (Utility) (grades (grids), céu em formato de cúpula (skydome), setas (arrows)...).
- Suporta classes para acessar o diretamente OpenGL
- Objetos do tipo câmera e luz podem ser usados em qualquer lugar em uma hierarquia de objetos do cenário.
- Objetos de comportamento podem ser anexados a objetos com o propósito de animação, facilmente expansível.
- Efeitos especiais por objeto (aplicar a renderização antes/depois aos objetos e efeitos secundários ao cenário), facilmente expansível.
- Suporte para sistemas de partículas, qualquer objeto ou objeto estruturado pode ser uma partícula.
- Importação de arquivos do 3D Studio e coordenadas das texturas com cálculo automático e preciso dos vetores normais (usando os determinados grupos suavizadores do arquivo).
- Outros formatos importados: OBJ/OBJF, SMD, MD2, STL, TIN, PLY.
Materiais
- Fácil de usar, otimizado, materiais para objetos.
- Biblioteca de material para compartilhar e re-utilização de materiais.
- Suporte a ambientes, difusão, emissão, reflexo e brilho.
- Suporte a modos combinatórios (transparência, aditivo...)
- Autogeração de canal alfa.
- Suporte a formato de textura OpenGL, incluindo formatos comprimidos (DXT, S3TC etc.)
- Suporte a plug-in shaders genérico
- Suporte a classes de alto-nível de shaders Cg.
- Suporte a imagem polimorfica para texturização (permite muitos formatos como também texturas processuais), facilmente expansível.
- Mais de 150 cores pré-definidas como clrCornflowerBlue ou clrCoolCopper (facilmente expansíveis) além de cores padrão e especificações diretas do padrão RGBA
- Fácil de usar as propriedades de movimentação de textura e de escalabilidade, independentemente das coordenadas de textura.
- Suportam classes de Bitmap de 32 bits
Renderização
- Usa automaticamente o driver do hardware OpenGL se disponível.
- Um bom funcionamento do modelo de câmera usando comprimento focal e a mira.
- Múltiplas visões para uma ou mais cenas, fácil mudança de visão por seleção de câmera.
- Suporte a névoa e a visão de profundidade.
- Renderiza para um arquivo, para um bitmap ou para a impressora em qualquer resolução de cor e pixel.
- Suporta a tela cheia com mudanças dinâmicas de resolução.
- Reflexões e efeitos de espelho.
- Fundição de sombras dinamicamente.
- Suporte a sistema de alta-performance de partículas transparentes em cenários largos.
- Seleção automática (por hierarquia ou por objeto) de frustrum.
Animação
- Propagação de eventos de progressão de tempo.
- Animação de esqueleto (múltiplos ossos (bones) por vértice).
- Interpolação de quadro (frame) e mudança de alvos (morph targets).
- Comportamentos facilmente expansíveis.
- Física dinâmica: inércia, aceleração, umidade e força de aplicação.
- Iluminação automática e em tempo real da cena.
Interface
- Funções fácil-de-usar para determinar os objetos escolhidos.
- Funções de ajuda para movimentação da câmera.
- Funções de ajuda para a tradução do objeto escolhido.
- Funções de ajuda para conversão entre telas e coordenadas globais, trajetória de raios (raycasting)
Som
- Suporte embutido para fontes som 3D e para o ouvinte.
- Atualização automática da posição, da velocidade e da orientação das fontes de som e do ouvinte.
- Amostras de som da biblioteca do componente.
- Gerenciadores de sons para WaveOut, BASS e FMOD.
Utilitários
- Aperfeiçoamento de funções de geométricas e utilitários (vetor, quaternion e matriz...).
- Suporte a funções e classes spline cúbica.
- Engrenaram a manipulação e a otimização (stripification, vertex-cache awareness, etc.).
- Componente para fazer o salvar-tela (screen-saver) totalmente configurável em alguns cliques.
- Determinação precisa da velocidade do quadro (frame).
- Cronômetro assíncrono (multi-threaded).
- Suporte a joystick.
- Acesso assíncrono ao teclado, suporte ao mapa de caracteres.
Bibliotecas de terceiros
- Suporte para biblioteca de física de ODE.
- Suporte para Delphi Web Script (DWS).
- Suporte para Camadas Diretas de Mídia Simples (Simple Direct Media Layer - SDL).
- Suporte ao conjunto de ferramentas da biblioteca CG NVidea shader.
Observações: O Delphi 5 tem suporte basicamente a BMP, WMF, EMF, ICO e JPG , você pode acrescentar suporte para GIF, TIF, TGA, PSD e muitos mais incluindo a biblioteca GraphicEx de Mike Lischke
Capturas de tela
Autor
Autor: inicialmente por Mike Lischke
E há tempos sendo mantido por Eric Grange
Portal LCL: Christian Ulrich
Baixar
Ultima versão (v1.0.0.2)
- Uma nova versão pode ser encontrado em Pagina de Arquivos Lazarus CCR.
Isto deveria ser quase idêntico ao repositório cvs original de hoje em termos de funcionalidade e de problemas-corrigidos, porém, ainda existem algumas partes faltando. Lá não haverá um "Lazarus-com-instalador-GLScene" com esta nova versão, a menos que outra pessoa o crie. --Crossbuilder 20:16, 18 Julho 2007 (CEST)
Desatualizado
Uma versão mais antiga(version 0.9.1.6) pode ser encontrada em Pagina de Arquivos Lazarus CCR junto com um instalador do lazarus com GLScene já na IDE Lazarus e nas demonstrações da GLScene. ATUALIZAÇÃO: Esta versão está bem desatualizada agora. Se possível, faça a verificação com o svn (veja abaixo).
SVN
você pode verificar a versão do código-fonte atual do
http://svn.freepascal.org/svn/fpcprojects/glscene/trunk/
O comando seria:
svn co http://svn.freepascal.org/svn/fpcprojects/glscene/trunk glscene
Isto baixará do repositório da pasta (principal) para o diretório "glscene" de onde você deu o comando.
No windows você pode usar os clientes como tortoise SVN e outros.
Relatório de Erros
Relatório de Erros/Exibir pedido Por favor selecione em Project "Packages" e em Category "glscene" para seus relatórios. Obrigado.
Registro das Mudanças
- 18.07.2007 liberação da versão Instantênea 1.0.0.2
- algumas coisas ajustadas , para se trabalhar com última versão svn do lazarus
- adcionados objetos bitmaps ao SceneEditor (Editor de Cenário)
- consertado outro AV dentro do SceneEditor
- incorporado todos os remendos (patches) e erros consertados (bugfixes) do repositorio cvs do glscene original como texturas,dinâmicos..
- 13.06.2007 liberação da versão Instantênea 1.0.0.1
- incorporado todos os remendos (patches) e erros consertados (bugfixes) do repositorio cvs do glscene original
- editor de cena aprimorado ( menos porradas, mas ainda precisa de algum amor)
Sugestão: Salve seu projeto freqüentemente ;-) - seperada dependencia de material do mmsystem do suporte de som genérico, por exemplo, FMOD que está disponível em linux, também
- muitos mais ..
- 01.12.06 Adicionado suporte ao ODE, gtk2 e Cg shaders em Linux (ODE é limitada a liberação normal de versão, sem suporte a cones, cilindros e terrenos)
- 10.08.05 Muitas mudanças para postar aqui veja o histórico cvs
- 16.07.05 Porta GLScene 0.9.X
- veja a Conta GLScene Sourceforge para o completo Registro das mudanças
Status: Beta
Instalação da versão 1.0.0.2
Requer o fpc 2.1.4 ou superior e o lazarus 0.9.23 revisão 11348 ou superior !!
- extraindo os códigos-fontes
- ZIP:
- na pasta "lazarus/components/" execute o "unzip glscene-1.0.0.2.zip"
Isto criará a pasta lazarus/components/glscene/
- na pasta "lazarus/components/" execute o "unzip glscene-1.0.0.2.zip"
- SVN:
- na pasta "lazarus/components/" execute o
svn co http://svn.freepascal.org/svn/fpcprojects/glscene/trunk glscene
Isto criará a pasta lazarus/componets/glscene/ - Tortoise SVN: adicione a pasta "glscene" manualmente então você fica com lazarus/components/glscene. Então clique com o botão direito do mouse sobre a nova pasta e escolha "SVN Checkout...". No campo "URL of repository" adicione
http://svn.freepascal.org/svn/fpcprojects/glscene/trunk
Confirme em "OK".
- na pasta "lazarus/components/" execute o
- ZIP:
- Finalizando a instalação:
- copie de "lazarus/components/glscene/globallinks/*.lpl" para "lazarus/packager/globallinks/"
- inicie o lazarus
- selecione "Configure installed packages ..." do menu "Components"
- selecione "glscenelazarus" da lista "Available packages"
- clique no botão "Install selection"
- clique no botão "Save and rebuild IDE"
- ATENÇÃO: Pode ocorrer um erro em que o pacote "jpegforlazarus" não seja encontrado. Nesse caso faça o seguinte:
- Components --> Open loaded package...
- Escolha "glscenelazarus" (Versão 1.0.0.3) e clique em "Open..."
- Na lista seguinte abaixe até "Required Packages" e remova dependência de "jpegfromlazarus".
- Procure a unit "jpeg" na pasta /lazarus/components/glscene/Source/base e substitua "LazJPEG" (dentro da cláusula uses) por "LazJPG" (do pacote ImagesForLazarus).
- Salve e repita os últimos 4 passos denovo.
- SUGESTÃO: Você deveria ter instalado o pacote "ImagesForLazarus" (o mesmo caminho descrito para o pacote "glscenelazarus").
- repita os últimos 4 passos para os outros pacotes você queira usar.
- Observação: o glsceneode e o glscenecgshader precisam de suas respectivas bibliotecas durante instalação no sistema!
- Observação: você também pode tentar selecionar e instalar todos os pacotes em um 'Avançar'. Porém, eu prefiro fazer as coisas passo a passo, assim eu vejo onde falha, e se ele falha ;)
- Instalação "glscenelazarus" - erros: (só precisou ao usar o glscene-1.0.0.2.zip, no svn já estão consertados)
- Para corrigir a unit GLLCLViewer: procedure TGLSceneViewer.CreateParams(var Params: TCreateParams); - na procedure TGLSceneViewerLCL.CreateParams(var Params: TCreateParams);
- Para corrigir a unit GLLCLViewer: procedure TGLSceneViewer.EraseBackground(DC: HDC); - na procedure TGLSceneViewerLCL.EraseBackground(DC: HDC);
- Para corrigir a unit GLLCLFullscreenViewer: Mude "RegisterClasses([TGLSceneViewer, TGLFullScreenViewer]);" para "RegisterClasses([TGLFullScreenViewer]);"
- Lista de pacotes:
- glscenelazarus O pacote principal.
- glscenecgshader Componentes Cg Shader
- glsceneode Componentes ODE
- glss_fmodlaz Componente FMOD
- gls_winonly Apenas para Windows, contém suporte ao som do mmsystem, suporte ao BASS e ao componente GLScreenSaver
- Сompilação "demo" - erros:
- Se não encontrada a class - TGLSceneViewer: Para corrigir o uses (demo): GLLCLViewer - no GLViewer
Instalação da versão 0.9.6.1
- Crie o diretório lazarus\components\GLScene
- Neste diretório, extraia os arquivos do arquivo zip
- Abra o lazarus
- Abra o pacote glscenelazarus.lpk com o pacote de arquivo Component/Open (.lpk) do lazarus\components\glscene\Lazarus
- (Só é necessário clicar em Compile, se você não quizer instalar o componente dentro da IDE)
- Clique em Install
- Repita estes passos (abra o .lpk, clique em install) para os outros pacotes você queira usar. Observação: estes pacotes adicionais precisam de bibliotecas adicionais (fmod, ode, Cg).
- glscenecgshader.lpk : Cg shaders (apenas com placas NVidia?)
- glsceneode.lpk : suporte para biblioteca ode
- glsss_fmodlaz.lpk : suporte para biblioteca fmod
- gls_winonly.lpk : isto só pode ser instalado no windows. Contém material screensaver como também suporte para biblioteca BASS.
Sugestão: às vezes um Error "GLGraphics not found" ocorre. Não preocupe, apenas faça Tools->Build Lazarus novamente e isso deve solucionar.
Uma instalação completa do Lazarus com GLScene já está disponível na IDE como binary win32 release ou http://www.skinhat.com/lazarus
Apenas uma advertência para (novos) usuários de Linux: A GLScene no seu estado atual não está funcionando o "fora da caixa" (muitas modificações/inclusões são necessárias). ATUALIZAÇÃO: isto não é mais válido. A glscene para lazarus está sempre atualizada e a maioria das coisas funcionam muito bem fora da caixa do windows como também para linux.
A partir da última versão da pasta (veja em svn acima) a versão para linux está funcionando bem. Algumas demonstrações (aproximadamente 20%) ainda estão quebradas mas a maioria da glscene está funcionando agora. Nós também estamos migrando para faze-lo funcionar em outras plataformas Unix como o FreeBSD.
As partes que estão faltando/não-funcionando em sistemas não-windows são: glKeyboard (use o winapi, mas não é requesito principalmente), glSound (que usa o mm, nós precisamos usar a openal ou algo do tipo)
Uma instalador para windows completamente transparente foi planejada.
Ajuda
- Pode ser encontrada em Pagina Principal do GLScene
- entre no canal #glscene em freenode.net