flowchart TB
ARQ["arquivo em formato de troca aberto<br/>formalmente valido"]
ARQ --> G["geometria"]
ARQ --> M["materiais"]
ARQ --> AN["animacao"]
ARQ -.->|"nao tem onde carregar"| TAM["quanto a peca mede no mundo"]
ARQ -.->|"declarado nos metadados,<br/>sem obrigar ninguem"| CONV["unidade do autor: milimetro<br/>vertical do autor: Z<br/>origem: 200 unidades acima da base"]
CENA["convencao da cena, escrita antes<br/>metro · vertical Y · origem no apoio · frente +Z"]
CENA --> COMP["comparacao"]
CONV --> COMP
TAM --> PESSOA["0,32 m no maior lado<br/>quem sabe isto e uma pessoa"]
PESSOA --> COMP
COMP --> AJU["ajuste de importacao<br/>metade medida + metade declarada"]
1 Ativos, formatos de troca e orçamento de cena — Exercícios
Os três problemas desta página compartilham uma incomodidade: em todos eles alguma coisa dá certo quando deveria dar errado. O arquivo carrega sem reclamar e a peça fica com o tamanho errado; a técnica é aplicada corretamente e o número que se esperava ver não se move; o procedimento roda inteiro e produz uma folha de medição que ninguém consegue repetir. Nenhum dos três pede que você abra um projeto seu, continue algo em andamento ou execute código: cada cenário está descrito por inteiro aqui, com os números e as unidades de que você precisa.
Como trabalhar estes três. Lápis, calculadora e prosa bastam. Faça na ordem: o primeiro se resolve com uma divisão e uma separação de naturezas, o segundo pede quatro contas e uma comparação entre duas técnicas que atacam problemas diferentes, e o terceiro é um parecer sobre um procedimento escrito por outra pessoa, num ambiente que você ainda não viu. Uma restrição vale nos três, e ela é de honestidade: em nenhum momento eu lhe peço quanto uma máquina aguenta, nem que taxa de quadros alguma cena obteve. Esses números não foram medidos em lugar nenhum deste percurso, e responder o que não se mediu é justamente o defeito que o terceiro exercício existe para pegar.
1.1 Exercício 1: O arquivo válido que mente sobre o tamanho
Nível Básico — aplicação direta de conceitos
Uma cena de laboratório virtual foi montada com a convenção da cena — o conjunto de escolhas que todo objeto dali obedece, escrito uma vez e em um lugar só — declarada antes de existir qualquer objeto para importar: a unidade é o metro, o eixo vertical é o Y, a origem de cada peça fica no ponto em que ela toca a superfície de apoio, e a frente aponta no sentido positivo de Z.
Chega então uma balança de bancada, autorada fora dali e entregue num formato de troca aberto — um arquivo com especificação pública que transporta geometria, materiais e animações. O carregamento termina sem uma linha de aviso. A caixa envolvente da peça que chegou mede 320,0 unidades no maior lado. Os metadados do arquivo declaram que ela foi autorada em milímetro, com o vertical no eixo Z, e com a origem 200 unidades acima da base. Quem encomendou a balança sabe, porque a balança existe fora do computador, que ela mede 0,32 m no maior lado.
O que peço de você: escreva, em prosa, o ajuste que traz essa peça à convenção da cena, em três partes. Em (a), separe o que é medido do que é declarado nesse ajuste, nomeando cada item do enunciado que cai de cada lado e dizendo, em meia frase, por que a caixa envolvente resolve um dos lados sozinha e não tem como resolver o outro. Em (b), calcule o fator de escala a aplicar e escreva a divisão que o produz, com as unidades ao lado dos dois números; diga também quantas unidades do arquivo correspondem a um metro da cena. Em (c), explique por que o carregamento foi bem-sucedido apesar dos três desencontros, e o que precisou existir na cena para que alguém pudesse acusá-los.
Uma advertência que economiza tempo, e eu mesmo já perdi uma tarde com ela: a tentação em (b) é escrever direto o número 0{,}001 no código, com o argumento de que os arquivos daquele fornecedor vêm sempre em milímetro. Guarde essa opção para o Exercício 3, onde ela vai cobrar a conta.
Você terá terminado quando as duas metades de (a) estiverem separadas com a razão ao lado, quando (b) tiver a divisão escrita e não apenas o resultado, e quando (c) explicar o silêncio do carregamento sem atribuir defeito ao arquivo.
1.2 Exercício 2: Duas técnicas, duas colunas, e a coluna que cada uma move
Nível Intermediário — comparação e cálculo quantitativo
Uma sala de exposição virtual tem duas coisas dentro. No teto, 180 luminárias idênticas, com 36 triângulos cada uma, distribuídas em fila e vistas sempre de longe por quem caminha pela sala. No centro, uma escultura única de 4.000 triângulos, que as pessoas se aproximam para ver a meio metro do rosto. Cada luminária é hoje um objeto solto da cena, com a sua própria chamada de desenho — a conversa entre o programa e a placa de vídeo para desenhar um objeto, com custo fixo por objeto e independente do tamanho dele.
Duas técnicas estão sobre a mesa. Instanciar é desenhar muitas cópias de uma mesma forma numa chamada só: a placa recebe a forma uma vez e depois a lista das posições. Simplificar a malha é preparar uma segunda versão da mesma forma, com menos triângulos, exibida no lugar da original quando o objeto está longe o bastante para que a diferença não chegue ao olho. A versão simplificada da luminária tem 15 triângulos.
flowchart LR
subgraph CENA["sala de exposicao virtual"]
L["180 luminarias identicas<br/>36 triangulos cada<br/>presas ao teto, longe do olho"]
E["1 escultura unica<br/>4.000 triangulos<br/>vista a meio metro"]
end
L --> C1["coluna A<br/>chamadas de desenho"]
L --> C2["coluna B<br/>triangulos"]
E --> C1
E --> C2
T1["tecnica 1: instanciar<br/>uma forma, muitas posicoes"] -.->|"move"| C1
T2["tecnica 2: simplificar a malha<br/>segunda versao para a distancia"] -.->|"move"| C2
C1 --> REL["relatorio da cena<br/>duas colunas, duas contas"]
C2 --> REL
O que peço de você: compare as duas técnicas com números, em quatro partes. Em (a), calcule quantos triângulos e quantas chamadas de desenho as 180 luminárias custam no estado atual. Em (b), refaça as duas contas supondo que as luminárias passem a ser desenhadas como um lote instanciado, e diga qual das duas colunas mudou, qual ficou parada e por quê. Em (c), refaça as duas contas de novo, agora com a versão simplificada de 15 triângulos exibida no lugar da original, e diga qual coluna se moveu desta vez. Em (d), responda se vale simplificar a malha da escultura e se vale instanciar a escultura, com a razão de cada resposta.
Um resultado de (b) costuma ser lido como fracasso, sem ser: se você chegar a um número de triângulos idêntico ao de (a), não refaça a conta procurando o erro. Escreva por que ele tinha de ser idêntico e o que, então, a técnica entregou. E note que as duas técnicas se pagam no mesmo envelope, mas ninguém lê uma na outra.
Um limite do exercício, que faz parte dele: eu não lhe pergunto se essa sala cabe em máquina alguma, nem quantas chamadas de desenho um aparelho suportaria. Nada disso foi medido aqui, e a resposta certa a essa pergunta é dizer que ela não tem resposta neste enunciado.
Você terá terminado quando tiver dois números em (a), dois em (b) com a explicação da coluna parada, dois em (c), e duas decisões justificadas em (d) — cada uma nomeando o critério que a sustenta.
1.3 Exercício 3: Um parecer sobre o procedimento da estufa
Nível Desafiador — integração de conceitos e transferência
Um ambiente virtual de estufa, que você nunca viu e que está inteiro descrito aqui, tem uma bancada de mudas na frente, corredores de vasos repetidos ao fundo e um sistema de irrigação suspenso. Alguém escreveu, para esse ambiente, um procedimento em duas partes, e pediu o seu parecer antes de adotá-lo como rotina.
A parte da importação faz três coisas nesta ordem: assenta a peça que chegou sobre a base, gira-a −90 graus em X para trazer o vertical do autor ao vertical da cena, e multiplica tudo por 0,01, fator escrito fixo no código com o argumento de que os arquivos daquele fornecedor vêm em centímetro.
A parte da medição faz cinco. Monta a cena inteira; só então escolhe o teto de tempo de cada quadro, olhando o que a cena já gasta; mede no computador mais rápido do grupo, que tem placa de vídeo dedicada; registra apenas a média da janela observada; e, como o navegador se recusou a informar o nome da placa, preenche o campo com o nome do modelo que a pessoa acredita estar ali. A câmera, durante a medição, apontava para a bancada da frente, com os corredores de vasos fora do enquadramento. A folha final traz o censo — a soma estática do que existe na árvore da cena, esteja à vista ou não — bem acima da leitura do quadro que acabou de sair, e a conclusão registrada é que a contagem tem um erro em algum lugar.
Por fim, os vasos dos corredores estavam instanciados num lote só, e alguém acrescentou sobre eles um mecanismo pronto de nível de detalhe que alterna a malha peça por peça, conforme cada vaso se afasta. Depois disso, o relatório passou a mostrar o mesmo número de chamadas de desenho de antes de haver lote algum, e a conclusão registrada foi que instanciar não tinha servido para nada.
flowchart TB
subgraph IMP["parte 1 — importar"]
P1["assentar a peca na base"]
P2["girar -90 graus em X"]
P3["multiplicar por 0,01,<br/>fator fixo escrito no codigo"]
P1 --> P2 --> P3
end
subgraph MED["parte 2 — medir"]
P4["montar a cena inteira"]
P5["so entao escolher o teto do quadro"]
P6["medir no computador mais rapido do grupo,<br/>com placa dedicada"]
P7["registrar a media da janela"]
P8["campo do nome da placa preenchido<br/>com um nome plausivel"]
P4 --> P5 --> P6 --> P7 --> P8
end
IMP --> MED
MED --> LAUDO["folha final<br/>censo · leitura · maquina"]
CAM["camera apontada para uma bancada,<br/>estufa inteira fora do enquadramento"] -.-> LAUDO
O que peço de você: escreva o parecer em cinco partes, na ordem abaixo. Em (a), mostre o que a ordem escolhida na importação produz: explique por que assentar antes de girar assenta a peça por uma face que vai virar lateral, escreva a ordem correta dos três passos e diga qual sinal, na tela ou no relatório, denunciaria o defeito — e se a sua resposta for que não há sinal nenhum, diga isso com todas as letras e explique a consequência. Em (b), diga em que dia exatamente o fator fixo de 0,01 falha, que aparência tem essa falha, e por que o conserto dela costuma acontecer num terceiro lugar do código. Em (c), refute a conclusão de que a diferença entre censo e leitura indica erro de contagem: diga o que essa diferença mede, e descreva o gesto de quem usa o ambiente que a faz virar problema em uma fração de segundo. Em (d), aponte os três defeitos da parte da medição — a ordem em que o teto foi escolhido, a máquina em que se mediu, e o que a média sozinha deixa de dizer — e escreva, para cada um, a decisão errada que ele leva alguém a tomar. Em (e), explique por que o mecanismo de nível de detalhe peça por peça devolveu as chamadas de desenho que o lote havia economizado, e por que o relatório, mostrando o número de antes, faz parecer que nenhuma das duas técnicas funcionou.
Feche o parecer com um parágrafo sobre duas pessoas. A primeira é quem vai usar o ambiente com um visor na cabeça: uma média confortável convive com quadros longos espalhados pela janela, e o corpo sente o quadro longo, sem sentir a média. A segunda é quem vai repetir essa medição daqui a algum tempo, encontrar um número diferente e não ter como saber qual das duas medições estava errada, porque o campo da placa foi preenchido com uma suposição. Diga por que o “não sei” declarado teria valido mais ali do que o nome plausível, e por que nenhum dos dois problemas se resolve olhando a folha final com mais atenção.
Uma restrição que o parecer precisa respeitar: você não tem, e não deve inventar, taxa de quadros, proporção de quadros estourados ou total de triângulos desta estufa. Nada disso foi medido, e um parecer que preencha essas lacunas com números plausíveis comete o mesmo defeito que está criticando em (d).
Você terá terminado quando (a) tiver a ordem correta e a resposta sobre o sinal, (b) nomear o momento da falha, (c) descrever um gesto concreto, (d) trouxer três defeitos com três decisões erradas ao lado, (e) explicar a anulação entre as técnicas, e o parágrafo final descrever as duas pessoas sem atribuir falha a nenhuma delas.
Método, para quando você travar. Nos três, a pergunta que destrava é a mesma: contra o que eu estou comparando? Sem convenção escrita, “veio grande demais” é opinião; com ela, é uma divisão. Sem teto declarado antes, “está pesado” é impressão; com ele, é uma comparação. Sem a máquina registrada ao lado, um número de desempenho é uma frase sem sujeito. Escreva todas as contas com unidade, mesmo quando parecer pedantismo — boa parte da confusão com ajuste de importação vem de comparar unidades do arquivo com metros da cena sem notar a troca. E, sempre que você afirmar que alguma coisa ficou mais barata, diga em qual das duas colunas: triângulo e chamada de desenho são moedas diferentes, e a técnica que move uma delas deixa a outra exatamente onde estava.