# Makefile para exercícios de POV-Ray # Last edited on 2008-02-04 13:09:14 by stolfi # Para cada novo exercício, crie um novo sub-diretório na sua # área Linux, e copie para ele este Makefile. # O nome do arquivo principal da descrição sua cena deve ser # OBRIGATORIAMENTE "main.pov", e a imagem final será "main.gif" # Os parâmetros abaixo definem o tamanho de uma imagem isolada em pixels. # FULLWIDTH = 400 FULLHEIGHT = 300 # Os parametros abaixo definem o tamanho da tela para filme rápido: # MEDWIDTH = 200 MEDHEIGHT = 150 # Os parametros abaixo definem o tamanho da imagem animada: # SMALLWIDTH = 80 SMALLHEIGHT = 60 WIDTH = ${FULLWIDTH} HEIGHT = ${FULLHEIGHT} # Especifique a densidade de raios por pixel linear. # Pode ser NRAYS = 1 para rapidez, NRAYS = 2 para qualidade: # NRAYS = 1 # O valor default da variavel "clock", para geracao de um quadro unico. # IMPORTANTE: use sempre 1 algarismos antes e 4 depois do ponto. # CLOCK = 0.0000 # Liste aqui outros arquivos que fazem parte de seu modelo, como # arquivos "#include" chamados pelo seu ".pov", # imagens usadas em texturas, etc.: # OTHERINPUTS = # O que deve fazer o comando "make" sem parâmetros: # "first", "middle", "last" = quadros isolados. # "strip" = tira com 5 quadros. # "fast" = filme de 5 quadros, acelerado. # "movie" = filme com 21 quadros, vel. normal. # all: strip # Normalmente, você não deveria precisar mexer nas linhas abaixo: POVRAY = ${STOLFIHOME}/PUB/mc930/bin/povray POVINC = ${STOLFIHOME}/PUB/mc930/povinc POVTTF = ${STOLFIHOME}/PUB/povray/tt-fonts IMVIEW = /usr/X11R6/bin/display CONVERT = /usr/X11R6/bin/convert EXPORT = ${STOLFIHOME}/PUB/mc930/bin/mc930-export MAIN = main FRAME = ${MAIN}-${CLOCK} # Cuidado: linhas que começam com 8 colunas em branco devem # começar com 1 TAB, e não com SPACEs. .PHONY: all first middle last fast movie single frame export # "make first" mostra o primeiro quadro da animação: # first: ${MAKE} CLOCK=0.0000 single; # "make middle" mostra o quadro central da animação: # middle: ${MAKE} CLOCK=0.5000 single; # "make last" mostra o quadro final da animação: # last: ${MAKE} CLOCK=1.0000 single; # "make strip" mostra filme em forma de tira, com 5 quadros médios: # strip: /bin/rm -f ${MAIN}-?.????.png ${MAIN}-?.????.gif for clock in \ 0.0000 0.2500 0.5000 0.7500 1.0000 ; do \ ${MAKE} CLOCK=$$clock WIDTH=${MEDWIDTH} HEIGHT=${MEDHEIGHT} SHOW='+D' frame; \ done ${CONVERT} +append ${MAIN}-*.*.gif ${MAIN}.gif -${IMVIEW} ${MAIN}.gif # "make fast" mostra filme rápido (velocidade × 4) com 5 quadros médios: # fast: /bin/rm -f ${MAIN}-?.????.png ${MAIN}-?.????.gif for clock in \ 0.0000 0.2500 0.5000 0.7500 1.0000 ; do \ ${MAKE} CLOCK=$$clock WIDTH=${MEDWIDTH} HEIGHT=${MEDHEIGHT} SHOW='+D' frame; \ done ${CONVERT} -delay 50 ${MAIN}-*.*.gif ${MAIN}.gif -${IMVIEW} -delay 50 ${MAIN}.gif # "make movie" mostra filme (em velocidade normal) com 21 quadros pequenos: # movie: /bin/rm -f ${MAIN}-?.????.png ${MAIN}-?.????.gif for clock in \ 0.0000 0.0500 0.1000 0.1500 0.2000 0.2500 \ 0.3000 0.3500 0.4000 0.4500 0.5000 0.5500 \ 0.6000 0.6500 0.7000 0.7500 0.8000 0.8500 \ 0.9000 0.9500 1.0000 ; do \ ${MAKE} CLOCK=$$clock WIDTH=${SMALLWIDTH} HEIGHT=${SMALLHEIGHT} SHOW='-D' frame; \ done ${CONVERT} -delay 50 ${MAIN}-*.*.gif ${MAIN}.gif -${IMVIEW} -delay 50 ${MAIN}.gif # "make single CLOCK=N.NNNN" gera um quadro com o valor de clock especificado: # single: ${MAKE} CLOCK=`printf "%6.4f" ${CLOCK}` WIDTH=${FULLWIDTH} HEIGHT=${FULLHEIGHT} SHOW='+D' frame showframe # Comandos genéricos usados pelos comandos acima: SHOW = -D frame: ${FRAME}.gif showframe: -${IMVIEW} ${FRAME}.gif ${FRAME}.gif: ${FRAME}.png -/bin/rm -f ${FRAME}.gif ${CONVERT} ${FRAME}.png ${FRAME}.gif ${FRAME}.png: ${MAIN}.pov ${OTHERINPUTS} -/bin/rm -f ${FRAME}.png ${POVRAY} +A0 +FN +Q9 +R${NRAYS} \ +W${WIDTH} +H${HEIGHT} +K${CLOCK} \ $${SHOW} +SP32 +EP4 \ +L$${HOME}/lib/povray +L${POVINC} +L${POVTTF} \ +I${MAIN}.pov \ +O${FRAME}.png \ 3>&2 | tee ${FRAME}.log export: ${MAIN}.gif ${MAIN}.pov ${MAIN}-0.0000.gif ${OTHERINPUTS} ${EXPORT} ${MAIN}.gif ${MAIN}.pov ${MAIN}-0.0000.gif ${OTHERINPUTS}