O PBRT (Physically Based Rendering) é um programa Open Source que utiliza o algoritmo Ray-Tracing para criar imagens tridimensionais realistas. As imagens resultantes deste algoritmo podem ser extremamente realistas dado que o algoritmo referido anteriormente tenta simular o verdadeiro funcionamento de uma fonte de luz das reflexões dos objectos que interajam com essa luz. Este artigo tem como objectivo ajudar a instalar este software que é utilizado por muitos estudantes de computação gráfica.

Clique para ver melhor!

Para ter uma noção melhor do que é Ray-Tracing, aconselho a visitar a página da Wikipedia que explica em que consiste este algoritmo:

http://pt.wikipedia.org/wiki/Ray_tracing

Clique na imagem para ver melhor!


Instalação do programa

Como não existe nenhum repositório para este programa, será necessário compilar o código fonte do PBRT. Para proceder à compilação e para poder ter o programa em perfeito funcionamento, é necessário instalar algumas dependências. Por isso, abra o terminal e escreva o seguinte para instalar os diversos pacotes necessários:

sudo apt-get install libopenexr-dev libopenexr6 libilmbase6 build-essential flex bison zlib1g zlib1g-dev openexr-viewers


Depois de ter todos os pacotes necessários, precisa de fazer download do código fonte do programa. Clique aqui para fazer download do código fonte do programa e, de preferência, guarde o ficheiro na sua Pasta Pessoal para depois a configuração ser mais fácil. Depois de fazer download do ficheiro, abra o terminal na pasta onde o ficheiro foi guardado (se não sabe como fazer este passo visite este artigo) e escreva o seguinte para descompactar o ficheiro:

tar xvzf pbrt-src-1.03.tar.gz


Agora que tem o ficheiro descompactado, entre na pasta:

cd pbrt-1.03


Antes de proceder à compilação, deve mudar o Makefile corrigindo a localização das bibliotecas, ou seja, deve abrir a Makefile:

gedit Makefile


E deve substituir estas duas linhas:

EXRINCLUDE=-I/usr/local/include/OpenEXR
EXRLIBDIR=-L/usr/local/lib

Por estas duas:

EXRINCLUDE=-I/usr/include/OpenEXR
EXRLIBDIR=-L/usr/lib

Salve o ficheiro e feche o programa. Depois, no mesmo terminal, escreva o seguinte para proceder à compilação:

make clean ; make


Agora que tem o programa compilado, convém ter um atalho para executar o programa, por exemplo, criar um atalho que baste escrever o seguinte no terminal e o programa execute:

pbrt


Ora, para tal basta escrever dois comandos no terminal e o programa, nessa sessão do terminal, reconhecerá sempre esse comando. Esses dois comandos dependem da localização da pasta onde salvou e compilou o programa (no início do artigo disse para guardar o programa na Pasta Pessoal para este propósito). Assim, assumindo que a pasta está na Pasta Pessoal, os dois comando referidos são os seguintes:

export PATH=$PATH:$HOME/pbrt-1.03/bin/


export PBRT_SEARCHPATH=$HOME/pbrt-1.03/bin/


Exemplo de execução do PBRT

Para experimentar o programa, precisa de uma cena para a poder compilar e, posteriormente, a poder visualizar. Assim, faça download deste ficheiro e abra o terminal na pasta onde o guardou (deve utilizar o terminal onde adicionou os dois “exports” referidos acima para poder utilizar o comando “pbrt” ou, então, se é um terminal novo, corra novamente esses dois “exports”). No terminal escreva o seguinte para descompactar e entrar na pasta:

unzip SCENES.ZIP ; cd scenes


Compile o ficheiro:

pbrt buddha.pbrt


E por fim visualize o resultado:

exrdisplay pbrt.exr


Na pasta scenes existe vários ficheiros que podem ser compilados, o ficheiro buddha.pbrt é apenas um exemplo.

Clique para ver melhor!


Referências

Homepage do PBRT;
Ray-Tracing na Wikipedia.


18 Respostas ate agora.

  1. The results suggest the initial inhibitory effect of ritonavir on CYP3A may be mitigated by a more slowly evolving induction effect so that after about 1 week of ritonavir twice daily, the exposure of tadalafil is similar in the presence of and absence of ritonavir [see Dosage and Administration (2. ,

  2. Results revealed that infants younger than 6 months of age generally had lower lopinavir AUC12 than older children (6 months to 12 years of age), however, despite the lower lopinavir drug exposure observed, antiviral activity was demonstrated as reflected in the proportion of subjects who achieved HIV-RNA <400 copies/mL at Week 24 [see Adverse Reactions (6. ,

  3. Hypothyroidism, after [b]diflucan substitute when on hctz[/b] removallevothyroxine, synthroid, levoxyl, armour thyroid, levothroid, liothyronine, more.

  4. diflucan and nystatin and comparison ,

  5. My goal weight is 180 lbs, but the Doctor says she would like me to loose at least 40 lbs. ,

  6. This includes vitamins, minerals, herbal products, and drugs prescribed by other doctors. ,

  7. Cláudio Novais diz:

    Olá Mondragon,

    Os links não precisam de ser executados na pasta pois você já está a escrever a localização da mesma. Quanto à biblioteca que estava a dar erro, peço desculpa, mas para pelo menos o jaunty jackalope, a biblioteca é diferente (libopenexr6) e por isso peço desculpa pelo sucedido, mas já está corrigido!

    Para os utilizadores que tiverem problemas com a compatibilidade dos ficheiros com o unix, aconselho a instalar o pacote tofrodos:
    sudo apt-get install tofrodos

    E, depois, para converter o ficheiro para unix basta executar o novo comando com o nome do ficheiro como argumento, por exemplo:
    dos2unix cornell2.pbrt.txt

    Abraços.

  8. Mondragon diz:

    Bom, quando fui conferir os procedimentos, percebi que o pacote “libopenexr2ldbl” não havia sido encontrado. Então baixei daqui: http://packages.ubuntu.com/hardy/i386/libopenexr2ldbl/download
    e fiz a compilação do arquivo. Até aí tudo certo. Porém não consigo executar de forma alguma. Todos os arquivos estão na pasta pessoal. Se esses links devem ser executados na pasta pessoal, então não sei de fato onde está o problema. Pois:

    root@mondragon-desktop:/home/mondragon# export PATH=$PATH:$HOME/pbrt-1.03/bin/
    root@mondragon-desktop:/home/mondragon# export PBRT_SEARCHPATH=$HOME/mondragon/pbrt-1.03/bin/

    Ou os links devem ser executados dentro da pasta “pbrt-1.03″ que está dentro da pasta pessoal?

  9. Cláudio Novais diz:

    Olá Lau,

    Não sei qual será o problema, mas sei que o mais provável é estar relacionado com a programação da aplicação ou, então, a compilação falhou em algum módulo.

    No entanto, experimente outro modelo, ou seja, em vez do buddha.pbrt, escolha o areapot.pbrt

    Olá Mondragon,

    Através desta mensagem de erro:
    “bash: pbrt: comando não encontrado”
    Você pode rapidamente concluir que o problema está no link. Você não deve ter feito bem o link para o programa e o terminal não está a reconhecer o comando pbrt. Ou seja, o problema deve estar nos EXPORTS.

    Pode, também, estar na compilação. Caso a compilação não tenha sido bem sucedida os exports tornam-se obsoletos e esse erro também aparece. Veja se aquando da compilação deu algum erro, caso nao tenha dado o problema está no caminho dos exports que não deve ser esse que você pôs…

    Abraços.

  10. Mondragon diz:

    Seguindo as orientações, descompactei os arquivos na pasta pessoal e compilei. O mesmo com os arquivos SCENES. Porém, após criar os links para o programa. Já dentro da pasta scenes tentei compilar o ficheiro (pbrt buddha.pbrt), mas aparece o aviso:
    root@mondragon-desktop:/home/mondragon/scenes# pbrt
    bash: pbrt: comando não encontrado
    A partir daí não avancei mais.
    Uma pequena luz já me ajuda, pois estou começando a estudar Linux e portanto, visito este site com máxima frequencia. Grato.

  11. Lau diz:

    Quando rodo “pbrt buddha.pbrt” aparece:

    pbrt version 1.030 of May 22 2009 at 12:02:47
    Copyright (c)1998-2007 Matt Pharr and Greg Humphreys.
    The source code to pbrt (but *not* the contents of the book) is
    covered by the GNU General Public License. See the file COPYING.txt
    for the conditions of the license.
    Segmentation fault

    e nada mais acontece.
    Sabe do que se trata?

    Valeu !!

  12. Cláudio Novais diz:

    Olá Lau,

    Peço desculpa pelo erro. Isso não é um pacote, mas sim, dois pacotes. Faltou pôr um espaço entre os dois pacotes que são os seguintes: libilmbase6 e build-essential

    Já corrigi o artigo, já pode voltar a correr a linha para instalar as dependências…

    Abraço.

  13. Lau diz:

    Valeu pelo artigo Claudio mas não consegui achar esse pacote libilmbase6build-essential em nenhum lugar. Alguma dica?

Deixe uma resposta a Lau