Juntando Modelação 3D Manual e Procedimental · JSON JavaScript Object Notation ... encontramos...
Transcript of Juntando Modelação 3D Manual e Procedimental · JSON JavaScript Object Notation ... encontramos...
FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO
Juntando Modelaccedilatildeo 3D Manual eProcedimental
Rui Miguel Barros Gonccedilalves
Mestrado Integrado em Engenharia Informaacutetica e Computaccedilatildeo
Orientador Rui Rodrigues
Co-orientador Pedro Silva
Co-orientador Joatildeo Jacob
1 de Fevereiro de 2016
ccopy Rui Gonccedilalves 2016
Juntando Modelaccedilatildeo 3D Manual e Procedimental
Rui Miguel Barros Gonccedilalves
Mestrado Integrado em Engenharia Informaacutetica e Computaccedilatildeo
1 de Fevereiro de 2016
Resumo
Na aacuterea da modelaccedilatildeo tridimensional existem duas grandes vertentes modelaccedilatildeo manual emodelaccedilatildeo procedimental Na primeira o utilizador modela o objeto interagindo diretamente como resultado atraveacutes de ferramentas virtuais que em alguns casos se aproximam daquelas utili-zadas por modeladores em objetos reais desta forma permitindo um controlo direto e fino sobreo que estaacute a ser produzido Em modelaccedilatildeo procedimental os objetos satildeo construiacutedos de formaautomaacutetica a partir de vaacuterias condiccedilotildees definidas pelo utilizador atraveacutes de regras textuais numalinguagem dedicada ou de grafos de fluxo de dados permitindo um produccedilatildeo raacutepida em em gran-des quantidades de conteuacutedo 3D No entanto nem sempre a interaccedilatildeo com estes meacutetodos eacute a maisintuitiva Em situaccedilotildees em que eacute necessaacuterio introduzir detalhes particulares o processo de criaccedilatildeoprocedimental torna-se demasiado trabalhoso Para esses casos a modelaccedilatildeo manual seria a maisadequada para efetuar correccedilotildees ou ajustes em detalhes Eacute assim importante encontrar um meioque permita combinar as vantagens da modelaccedilatildeo manual com as vantagens da modelaccedilatildeo pro-cedimental para que os potenciais utilizadores possam criar modelos tridimensionais com maioreficiecircncia
Esta dissertaccedilatildeo tecircm como objetivo avaliar possiacuteveis abordagens de integraccedilatildeo das duas ver-tentes de modelaccedilatildeo e o impacto da respetiva utilizaccedilatildeo Para tal foi implementada e testada umasoluccedilatildeo que visa integrar a ferramenta de modelaccedilatildeo procedimental Construct na ferramenta demodelaccedilatildeo manual Blender
i
ii
Abstract
The domain of tridimensional modelling contains two major approaches manual modellingand procedural modelling In the first the user models the object interacting directly with theresult through virtual tools which in some cases work similarly to those utilized by modelers inreal objects thus allowing for direct and rigorous control over what is being produced In pro-cedural modelling the objects are created automatically through several user-defined conditionsby textual rules in a dedicated language or data-flow graphs allowing for quick and large-scaleproduction of 3D content On the other hand interaction with these methods isnrsquot always the mostintuitive In cases where itrsquos necessary to introduce particular details the procedural generationprocess becomes too taxing For those situations manual modelling would be the most adequate toperform corrections or small adjustments over details So it is important to find a medium whichpermits combining the advantages of manual modelling with those of procedural modelling sothat potential users may create tridimensional models with greater efficiency
This dissertation has as its objective the evaluation of possible integrations of the two mainapproaches of 3D modelling and the impact of the corresponding usage To that purpose a solu-tion that aims to integrate the procedural modelling tool Construct in the manual modelling toolBlender was implemented and tested
iii
iv
Agradecimentos
Comeccedilo por agradecer aos meus orientadores o Professor Rui Pedro Amaral Rodrigues PedroAmorim Brandatildeo da Silva e o Joatildeo Tiago Neto Jacob pelo seu trabalho conselhos e apoio semos quais esta dissertaccedilatildeo natildeo seria concluiacuteda Agradeccedilo tambeacutem ao Professor Pedro Cardoso daFaculdade de Belas Artes da Universidade do Porto pelo apoio dado no decorrer desta dissertaccedilatildeo
Agradeccedilo a todos os membros da Faculdade de Engenharia da Universidade do Porto e doDepartamento de Engenharia Informaacutetica e Computaccedilatildeo por me motivarem e ensinarem durantedestes anos
Agradeccedilo em particular ao meu colega e amigo Joatildeo Almeida pelo apoio que me deu na revisatildeodeste documento Finalmente gostaria de agradecer aos meus paiacutes irmatildeo amigos colegas decurso e familiares pelo apoio que me deram ao longo do meu percurso acadeacutemico
Rui Miguel Barros Gonccedilalves
v
vi
ldquoWhat we usually consider as impossible are simply engineering problemstherersquos no law of physics preventing themrdquo
Dr Michio Kaku
vii
viii
Conteuacutedo
1 Introduccedilatildeo 111 Contexto 212 Motivaccedilatildeo e Problema 213 Objetivos 314 Estrutura do documento 3
2 Estado da Arte e Trabalhos Relacionados 521 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais 5
211 Teacutecnicas Sketch-based 5212 Editores Visuais 8213 Modelaccedilatildeo Procedimental Invertida 9
22 Modelaccedilatildeo 3D Manual 10221 Teacutecnicas de Modelaccedilatildeo Manual 10222 Ferramentas de Modelaccedilatildeo 3D 11
23 Sumaacuterio 13
3 Metodologia 1531 Meacutetodo de Trabalho 1532 Metodologias de Interaccedilatildeo com o Utilizador 16
321 Modificadores 16322 Grafos 16323 Funccedilotildees 17
33 Arquitetura da Soluccedilatildeo 17331 Vantagens 17332 Desvantagens 18
34 Protocolo de Comunicaccedilatildeo 19
4 Implementaccedilatildeo 2141 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual 2142 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental 2243 Comunicaccedilatildeo 2344 Construccedilatildeo da Interface 2545 Execuccedilatildeo 26
5 Teste da Soluccedilatildeo e Resultados Obtidos 3151 Metodologia de Teste 3152 Resultados 36
ix
CONTEUacuteDO
6 Conclusotildees e Trabalho Futuro 3961 Trabalho Futuro 39
Referecircncias 41
A Mensagens JSON 47A1 JSON de Pedido de Abertura do Projeto Urban 47A2 JSON de Informaccedilatildeo do Projeto Urban 47A3 Exemplo de Pedido para Gerar um Grafo 49A4 Exemplo de Resposta de Erro do Servidor 50
B Principais Grafos do Projeto Urban 51
C Cenaacuterios Resultantes dos Testes com Utilizadores 55
x
Lista de Figuras
11 Captura de ecratilde do viacutedeo jogo Crysis 3 da Electronic Arts 2
21 Procedural sketching of virtual worlds por Smelik et al [STdKB10] 622 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et
al [IOI06b IOI06a] 723 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch 824 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13] 925 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14] 1026 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modelo
NURBS 1127 Interface da ferramenta Blender 1228 Interface da ferramenta Autodesk Maya 12
31 Diagrama do sistema proposto 18
41 Editor Construct em execuccedilatildeo 2242 Grafo exemplo e respetiva geometria produzida 2343 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct 2444 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct
a abrir 2445 Barra de ferramentas depois de aberto um projeto 2646 JSON enviado ao servidor para a execuccedilatildeo de um grafo 2647 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base 2748 Edifiacutecio depois de adicionado agrave cena 2749 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores 28410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular 28411 Custom Properties de um objeto produzido por um grafo Cube 29
51 Cenaacuterio requisitado aos utilizadores 3152 Exemplos de resultados possiacuteveis do grafo Building 3253 Exemplo de resultado do grafo Window 3354 Exemplo de resultado do grafo Door 3355 Exemplo de resultado do grafo CityStreets 3456 Cursor 3D do Blender 36
B1 Grafo Building como visto no editor Construct 51B2 Grafo CityStreets como visto no editor Construct 52B3 Grafo Window como visto no editor Construct 52B4 Grafo Door como visto no editor Construct 53
xi
LISTA DE FIGURAS
B5 Grafo DetailedRoof como visto no editor Construct 53
C1 Cenaacuterio criado pelo utilizador 3 55C2 Cenaacuterio criado pelo utilizador 4 56
xii
Lista de Tabelas
41 Estatiacutesticas dos principais foacuteruns 2242 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender 25
51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e otempo utilizado para construir o cenaacuterio utilizando o add-on desenvolvido 37
52 Resultados da avaliaccedilatildeo de usabilidade do sistema 37
xiii
LISTA DE TABELAS
xiv
Abreviaturas e Siacutembolos
API Application Programming InterfaceCAD Computer-Aided DesignCASE Computer-Aided Software EngineeringCGI Computer-Generated ImageJSON JavaScript Object NotationMP Modelaccedilatildeo ProcedimentalGP Geraccedilatildeo ProcedimentalMM Modelaccedilatildeo ManualSUS System Usability ScaleTCP Transmission Control Protocol
xv
Capiacutetulo 1
Introduccedilatildeo
A criaccedilatildeo de ambientes virtuais eacute um toacutepico muito relevante em computaccedilatildeo graacutefica e reali-
dade virtual tendo aplicaccedilotildees na induacutestria do entretenimento para a produccedilatildeo filmes e videojogos
entre outros Na induacutestria do cinema estes ambientes virtuais satildeo utilizados para criar imagens
impossiacuteveis de reproduzir atraveacutes de meios praacuteticos Na induacutestria dos videojogos cada vez mais
encontramos jogos em ambientes de maior dimensatildeo e com um elevado niacutevel de detalhe (Figura
11)
Em modelaccedilatildeo a abordagem tradicional eacute a de Modelaccedilatildeo Manual que permite ao artista
controlo completo e fino do objeto a ser criado No que toca agrave criaccedilatildeo de cenaacuterios de elevadas
dimensotildees como montanhas cidades estradas e vegetaccedilatildeo a abordagem tradicional torna-se cada
vez menos viaacutevel A introduccedilatildeo de meacutetodos procedimentais na geraccedilatildeo destes conteuacutedos permite
produzir resultados de alta qualidade com alguma facilidade produzindo cenaacuterios numa fraccedilatildeo do
tempo e do custo correspondentes agrave respetiva produccedilatildeo por meio de modelaccedilatildeo manual
Apesar do grande impacto positivo que esta abordagem trouxe para a induacutestria de um ponto
de vista artiacutestico nem sempre o resultado eacute o mais desejado desta forma podendo necessitar
da introduccedilatildeo de pormenores e alteraccedilotildees finas agrave respetiva geometria para produzir um resultado
uacutenico e mais proacuteximo da visatildeo artiacutestica do criador Para tal tecircm sido desenvolvidas teacutecnicas
para uma interaccedilatildeo mais intuitiva com a modelaccedilatildeo procedimental tentado dar ao modelador um
melhor controlo sobre os meacutetodos automatizados que lhes estatildeo subjacentes natildeo possuindo ainda
o niacutevel de controlo fino que uma ferramenta de modelaccedilatildeo manual pode oferecer
1
Introduccedilatildeo
Figura 11 Captura de ecratilde do viacutedeo jogo Crysis 3 da Electronic Arts
11 Contexto
Esta dissertaccedilatildeo insere-se na aacuterea da computaccedilatildeo graacutefica mais especificamente na aacuterea da mo-
delaccedilatildeo tridimensional geraccedilatildeo procedimental de modelos 3D e interaccedilatildeo com os mesmos Estas
aacutereas intersectam-se em rumo a uma melhor interaccedilatildeo com recursos de geraccedilatildeo procedimental
num ambiente de modelaccedilatildeo manual
Esta dissertaccedilatildeo foi realizada na Faculdade de Engenharia da Universidade do Porto no Labo-
ratoacuterio de IampD de Computaccedilatildeo Graacutefica Interaccedilatildeo e Jogos
12 Motivaccedilatildeo e Problema
Os avanccedilos no desenvolvimento de hardware e software resultam numa necessidade de con-
teuacutedo tridimensional maior e mais detalhado criando uma maior carga nas equipas que os pro-
duzem Como mencionado previamente a utilizaccedilatildeo de modelaccedilatildeo procedimental para a criaccedilatildeo
raacutepida de ambientes tridimensionais eacute altamente apelativa para a induacutestria permitindo poupar
tempo e dinheiro comparativamente a uma abordagem manual
No entanto esta abordagem dificulta ao modelador a introduccedilatildeo de pormenores pois os meacute-
todos procedimentais satildeo definidos tipicamente por um conjunto de regras e paracircmetros de uma
forma natildeo intuitiva ou de controlo limitado A simples modificaccedilatildeo de um paracircmetro pode criar
uma reaccedilatildeo em cadeia de modificaccedilotildees que alteram por completo o modelo gerado Eacute assim ape-
lativo encontrar um meacutetodo que melhor aproveite as vantagens das duas abordagens permitindo
aos modeladores uma produccedilatildeo de conteuacutedo tridimensional mais raacutepida e controlada
2
Introduccedilatildeo
13 Objetivos
O objetivo principal deste trabalho eacute desenvolver uma soluccedilatildeo que melhor aproveite as vanta-
gens das duas principais abordagens agrave modelaccedilatildeo 3D para tal eacute possiacutevel identificar os seguintes
objetivos especiacuteficos
bull Investigar o estado da arte da aacuterea da modelaccedilatildeo procedimental e modelaccedilatildeo manual em
particular os avanccedilos realizados na interaccedilatildeo com os meacutetodos utilizados em modelaccedilatildeo pro-
cedimental
bull Estudar as metodologias possiacuteveis para abordar o problema
bull Desenvolver uma soluccedilatildeo utilizando uma abordagem possiacutevel com os recursos disponiacuteveis
bull Testar a soluccedilatildeo com utilizadores proficientes em modelaccedilatildeo de conteuacutedo 3D
14 Estrutura do documento
Esta dissertaccedilatildeo encontra-se dividida em 6 capiacutetulos anexos e referecircncias O capiacutetulo pre-
sente consiste numa descriccedilatildeo do problema da motivaccedilatildeo e dos objetivos propostos para a cor-
respondente realizaccedilatildeo No capiacutetulo 2 eacute realizado um levantamento do estado da arte nas aacutereas
da modelaccedilatildeo procedimental e modelaccedilatildeo manual em especial os avanccedilos realizados na interaccedilatildeo
com os meacutetodos utilizados em modelaccedilatildeo procedimental No capiacutetulo 3 satildeo discutidas as meto-
dologias estudadas para a melhor interaccedilatildeo entre as duas abordagens agrave modelaccedilatildeo sendo tambeacutem
apresentada com maior detalhe a metodologia a ser utilizada
No capiacutetulo 4 satildeo descritos alguns detalhes de implementaccedilatildeo da soluccedilatildeo desenvolvida base-
ada na metodologia discutida no capiacutetulo 3
No capiacutetulo 5 eacute apresentada a metodologia de teste utilizada para avaliar a soluccedilatildeo desenvol-
vida sendo tambeacutem apresentados os resultados obtidos
No capiacutetulo 6 o final da dissertaccedilatildeo satildeo resumidas algumas constataccedilotildees e conclusotildees rea-
lizadas sobre esta dissertaccedilatildeo Eacute efetuada tambeacutem uma listagem de alguns pontos para potencial
trabalho futuro
3
Introduccedilatildeo
4
Capiacutetulo 2
Estado da Arte e TrabalhosRelacionados
Neste capiacutetulo seraacute realizada uma revisatildeo bibliograacutefica que visa apresentar todos os avanccedilos
realizados nas aacutereas da interaccedilatildeo com os meacutetodos de geraccedilatildeo procedimental Seratildeo apresentados
os tipos de conteuacutedo passiacuteveis de serem produzidos por meio destes meacutetodos bem como as teacutec-
nicas utilizadas para a respetiva interaccedilatildeo e geraccedilatildeo Iratildeo tambeacutem ser apresentadas as abordagens
existentes para uma modelaccedilatildeo manual e as ferramentas existentes no mercado
21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundosvirtuais
O paradigma de interaccedilatildeo com meacutetodos de geraccedilatildeo procedimental eacute tradicionalmente funci-
onal Cada procedimento pode ser considerado uma caixa negra de operaccedilotildees que dependendo
de certos valores de entrada produz um ou mais resultados A interaccedilatildeo com estes nem sempre
eacute a mais intuitiva pois para atingir o resultado desejado envolve em repetidas tentativa e erro por
parte do utilizador No entanto em anos recentes tem existido um avanccedilo consideraacutevel nesta aacuterea
tentado conceder ao utilizador maior controlo sobre os meacutetodos de geraccedilatildeo procedimental com
abordagens como Sketch-based editores visuais e Modelaccedilatildeo Procedimental Invertida
211 Teacutecnicas Sketch-based
Esta abordagem tenta aproximar o tipo de interaccedilatildeo com que os principais utilizadores de
meacutetodos de Modelaccedilatildeo Procedimental estatildeo familiarizados Noccedilotildees como Brushes e Sketches satildeo
alguns dos conceitos mais populares entre designers profissionais
5
Estado da Arte e Trabalhos Relacionados
2111 Terrenos
De Carpentier et al [dCB09] propuseram um meacutetodo de ediccedilatildeo de terrenos no qual eacute dada ao
utilizador a possibilidade de alterar o heightfield atraveacutes de procedural brushes tentando combinar
a interaccedilatildeo manual localizada com a modificaccedilatildeo da parametrizaccedilatildeo por completo de heightfields
Esta abordagem eacute capaz de produzir alteraccedilotildees a tempo real graccedilas agrave respetiva implementaccedilatildeo
com shaders
Smelik et al [STdKB10] seguindo a respetiva proposta de modelaccedilatildeo de mundos virtuais
[STdKB08] propotildeem a utilizaccedilatildeo da abordagem Procedural sketching e demonstram-na num
protoacutetipo intitulado de SketchaWorld Esta abordagem eacute dividida em dois principais modos de
interaccedilatildeo (Figura 21) Landscape Mode e Feature Mode
Figura 21 Procedural sketching of virtual worlds por Smelik et al [STdKB10]
No primeiro o utilizador interage com uma vista top-down do terreno divido em grelha e eacute
capaz de definir a informaccedilatildeo geoloacutegica de cada ceacutelula atraveacutes do uso de Brushes Em Feature
Mode o utilizador manipula pontos de controlo correspondendo a vetores ou poliacutegonos que deli-
mitam a localizaccedilatildeo de cidades rios e vegetaccedilatildeo A ferramenta fornece feedback da construccedilatildeo do
terreno a um ritmo consideraacutevel para uma interaccedilatildeo fluida Esta tambeacutem dispotildee de funcionalida-
des como undo e redo para uma melhorar a interaccedilatildeo entre o utilizador e a ferramenta permitindo
assim a introduccedilatildeo de alteraccedilotildees e caso estas natildeo sejam desejadas pelo utilizador estas podem
ser desfeitas rapidamente Gain et al [GMSe09] propotildeem uma soluccedilatildeo que permite ao utilizador
esboccedilar as silhuetas e limites de corpos montanhosos a serem gerados
6
Estado da Arte e Trabalhos Relacionados
2112 Estradas
Num esforccedilo de melhorar a interaccedilatildeo com path layouts Singh et al [SM08] desenvolveram a
ferramenta Drive que permite a conceptualizaccedilatildeo de redes rodoviaacuterias tridimensionais por meio
de esboccedilos que satildeo posteriormente aproximados a clotoacuteides (Curvas em que o raio varia line-
armente) Com esta abordagem eacute possiacutevel produzir itineraacuterios em que as transiccedilotildees entre raios
de curvatura satildeo lineares tornando-os assim adequados para a conduccedilatildeo A ferramenta tambeacutem
introduz Terrain sensitive sketching que por meios automaacuteticos coloca sinalizaccedilatildeo no percurso e
vegetaccedilatildeo nas redondezas
2113 Vegetaccedilatildeo
Figura 22 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et al[IOI06b IOI06a]
O trabalho de Ijiri et al [IOI06b IOI06a] apresenta uma teacutecnica que atraveacutes de traccedilados defi-
nidos pelo utilizador (Figura 22) permite a manipulaccedilatildeo da direccedilatildeo de crescimento de vegetaccedilatildeo
produzida por L-Systems uma abordagem jaacute muito estudada para a criaccedilatildeo de vegetaccedilatildeo pro-
posta por Lindenmayer [Lin68] como um tipo de gramaacutetica formal capaz de representar padrotildees
e geometria fractal existente na vegetaccedilatildeo Em 1988 foi proposto por Prusinkiewicz [PLH88] a
utilizaccedilatildeo de L-systems para a modelaccedilatildeo de vegetaccedilatildeo Ao longo das ultimas deacutecadas tecircm sido
realizados avanccedilos consideraacuteveis na produccedilatildeo de vegetaccedilatildeo realiacutestica [WP95] e a respetiva inte-
raccedilatildeo com o seu meio ambiente [MP96 Pru00] tentado assim produzir vegetaccedilatildeo que melhor
simule o comportamento fiacutesico e bioloacutegico de vegetaccedilatildeo real
Mais recentemente o trabalho de Palubicky et al [PHL+09] foi expandido e transportado
para uma aplicaccedilatildeo para dispositivos iPad em que o modelador tem um controlo fino sobre o
crescimento de uma aacutervore Utilizando o conceito de tree self-organization Longay et al criaram
7
Estado da Arte e Trabalhos Relacionados
a ferramenta TreeSketch 23 que estimula a competiccedilatildeo entre os ramos de uma aacutervore por espaccedilo
e luz dentro dos paracircmetros e inputs visuais dados pelo utilizador [LRBP12]
Figura 23 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch
212 Editores Visuais
Numa tentativa de melhorar a interaccedilatildeo com modelaccedilatildeo procedimental baseada em gramaacuteticas
[WWSR03 MWH+06] Lipp et al propuseram uma abordagem que permite a manipulaccedilatildeo direta
do resultado produzido por uma gramaacutetica O utilizador pode manipular diretamente no objeto as
respetivas dimensotildees e configuraccedilotildees [LWW08]
Mais recentemente Krecklau et al [KK12] introduziram uma abordagem que permite a ge-
raccedilatildeo de cenas a partir de primitivas de alto niacutevel e a correspondente manipulaccedilatildeo por interaccedilatildeo
direta na cena consequentemente permitindo a utilizadores menos experientes a utilizaccedilatildeo de
gramaacuteticas procedimentais complexas sem a necessidade de interaccedilatildeo textual com as mesmas
2121 Visual Node Based
Editores Visual Node Based satildeo utilizados em muitas aplicaccedilotildees comercias como meio de
dar ao utilizador feedback visual do fluxo de informaccedilatildeo Encontra-se em editores de shaders
[Hol15 Aut15b] editores de animaccedilotildees [Tec15] e em editores de texturas [Cod15] A vasta uti-
lizaccedilatildeo da teacutecnica na aacuterea de produccedilatildeo de conteuacutedo 3D por utilizadores com pouca experiecircncia
de programaccedilatildeo levou a que investigadores a utilizassem para a especificaccedilatildeo de gramaacuteticas de
produccedilatildeo
Nesse contexto Patow [Pat12] desenvolveu uma soluccedilatildeo para a construccedilatildeo e manipulaccedilatildeo de
gramaacuteticas por meio de um editor visual onde noacutes que representam operaccedilotildees geomeacutetricas dos
correspondentes antecessores transmitem o resultado aos noacutes sucessores Na mesma publica-
ccedilatildeo Patow realccedila a importacircncia que esta abordagem acarreta para a modelaccedilatildeo procedimental de
edifiacutecios e admite que existe ainda muito potencial por explorar
8
Estado da Arte e Trabalhos Relacionados
Mais recentemente o trabalho de Silva et al [SMBC13] apresenta uma metodologia de edi-
ccedilatildeo em que grafos podem ser encapsulados em noacutes designados Component capazes de representar
construccedilotildees complexas Os noacutes podem ser facilmente introduzidos noutros grafos e editados por
meio de filtros de fluxo colocados nas arestas ou por restriccedilotildees que auxiliam a especificar a utili-
zaccedilatildeo dos noacutes (Figura 24)
Figura 24 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13]
213 Modelaccedilatildeo Procedimental Invertida
Inverse PM eacute uma teacutecnica em que um dado modelo de entrada eacute aproximado a uma represen-
taccedilatildeo procedimental
Aliaga et al [ARB07] apresenta a reconstruccedilatildeo de edifiacutecios por meio de fotografias Nesta
abordagem o utilizador define os limites das fachadas do edifiacutecio criando uma representaccedilatildeo
minimalista De seguida eacute automaticamente aproximada uma gramaacutetica que melhor representa
o edifiacutecio em questatildeo Com os trabalhos de Šrsquotava et al [ŠBM+10] na parametrizaccedilatildeo de arte
vetorial 2D e de Mitra et al [MGP06] em encontrar simetrias em objetos tridimensionais Bokeloh
et al [BWS10] aplica estes conceitos para a descoberta de simetrias nos objetos e a consequente
aproximaccedilatildeo de gramaacuteticas que definam o objeto em questatildeo
As abordagens atuais focam-se em Modelaccedilatildeo invertida de ambientes urbanos no entanto
Vanegas et al [VGDA+12] demonstram uma metodologia de aproximaccedilatildeo de gramaacuteticas capazes
de representar para aleacutem de edifiacutecios sistemas complexos de vegetaccedilatildeo aproximados a um objeto
jaacute existente
9
Estado da Arte e Trabalhos Relacionados
22 Modelaccedilatildeo 3D Manual
Para a produccedilatildeo de objetos tridimensionais os modeladores utilizam ferramentas dedicadas
que lhes datildeo um controlo total sobre o modelo a ser construiacutedo Estes variam em metaacuteforas de
interface e em puacuteblico alvo Nesta secccedilatildeo vatildeo ser abordadas as teacutecnicas de modelaccedilatildeo atualmente
utilizadas por estas ferramentas e seratildeo listadas as ferramentas existentes no mercado e as respeti-
vas funcionalidades principais
221 Teacutecnicas de Modelaccedilatildeo Manual
2211 Polygon Modelling
Polygon Modelling eacute uma abordagem para a representaccedilatildeo de superfiacutecies tridimensionais utili-
zando poliacutegonos estes satildeo representados por veacutertices e arestas e em grupos formam uma Polygon
Mesh que pode ser armazenada de muacuteltiplas formas [TM06 Bau72 Smi06] Eacute possiacutevel criar ma-
lhas veacutertice a veacutertice manualmente No entanto eacute comum a respetiva manipulaccedilatildeo em software
graacutefico concedendo aos modeladores ferramentas interativas como Blender Autodesk Maya e 3D
Studio Max
Figura 25 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14]
Uma das abordagens mais comuns eacute denominada Box Modelling na qual uma forma geomeacute-
trica considerada uma primitiva (ie cubo esfera cilindro) eacute esculpida iterativamente por pas-
sos de subdivisatildeo do objeto e subsequente manipulaccedilatildeo da geometria ateacute se obter o objeto final
[Jon02 sub14] A figura 25 demonstra da teacutecnica Box Modelling para a modelaccedilatildeo de uma face
Esta abordagem pode ser considerada uma abordagem Subtrativa pois eacute atraveacutes da reduccedilatildeo de um
objeto base que eacute obtido o objeto desejado
10
Estado da Arte e Trabalhos Relacionados
O polygon modelling caracteriza-se pelo controlo direto sobre a colocaccedilatildeo de cada veacutertice de
uma superfiacutecie permitindo dessa forma um controlo fino e preciso sobre o resultado a produzir
2212 NURBS
NURBS ou Non-uniform rational B-spline eacute uma generalizaccedilatildeo de B-Splines e Curvas de Beacute-
zier [KR79 Cab92] um modelo matemaacutetico usado para representar curvas e superfiacutecies com
grande precisatildeo e flexibilidade (Figura 26) Eacute principalmente utilizado em aacutereas da computaccedilatildeo
graacutefica (CAD CAM CAE) onde a precisatildeo dos modelos obtidos eacute muito importante Inicialmente
estudada por Matemaacuteticos como I J Schoenberg [Cob84] foi aplicada em sistemas CAD para a
modelaccedilatildeo na induacutestria Automoacutevel [Beacute83 Beacutez81 Bez68]
Figura 26 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modeloNURBS
2213 Digital Sculpting
Digital Sculpting eacute a adaptaccedilatildeo de teacutecnicas utilizadas para moldar materiais como o barro agrave
modelaccedilatildeo 3D Estas ferramentas permitem ao modelador empurrar puxar polir vincare
adicionar ou remover volume Perry et al [PF01] introduziram Kizamu um dos primeiros passos
na aacuterea do Digital Sculpting Os modelos satildeo representados no que eacute chamado de Adaptively Sam-
pled Distance Fields (ADF) [FPRJ00] que permite representar dados volumeacutetricos que tornam o
processo de Digital Sculpting possiacutevel
222 Ferramentas de Modelaccedilatildeo 3D
2221 Blender
O Blender [ble15a] eacute uma ferramenta profissional de modelaccedilatildeo de coacutedigo aberto desen-
volvida pela Blender Foundation Suporta uma grande variedade de primitivas geomeacutetricas in-
11
Estado da Arte e Trabalhos Relacionados
Figura 27 Interface da ferramenta Blender
cluiacutendo Polygon Meshes curvas de Bezier superfiacutecies NURBS Metaballs e Digital Sculpting
Esta destaca-se por ser gratuita e pela facilidade de criar extensotildees [ble15b] usando a API Python
existente [ble15c] que permite adicionar novas funcionalidades agrave ferramenta
2222 Autodesk Maya
Figura 28 Interface da ferramenta Autodesk Maya
O Autodesk Maya [Aut15b] eacute uma ferramenta de produccedilatildeo de conteuacutedo 3D utilizada nas induacutes-
trias do cinema televisatildeo videojogos e arquitetura Eacute de coacutedigo fechado e a respetiva utilizaccedilatildeo
requer que o utilizador possua uma licenccedila Tal como o Blender o Maya daacute aos modeladores
ferramentas para estes criarem objetos de uma forma interativa 28 Apesar de ser uma ferramenta
versaacutetil e capaz de satisfazer as necessidades de todas induacutestrias acima referidas o Autodesk
Maya tende a ser mais utilizado pela induacutestria do Cinema devido agrave vasta customizaccedilatildeo possiacutevel de
aspetos importantes para esta induacutestria como Animaccedilatildeo e VFX [Aut15c]
12
Estado da Arte e Trabalhos Relacionados
2223 Autodesk 3D Studio Max
O 3D Studio Max [Aut15a] eacute outra ferramenta da Autodesk em muitos aspetos semelhante
ao Maya No entanto o 3DS Max estaacute apenas disponiacutevel para maacutequinas de sistema operativo
Windows e sempre foi mais utilizado pela induacutestria dos videojogos para a criaccedilatildeo de modelos 3D
Tal como o Autodesk Maya este dispotildee de poderosos motores de renderizaccedilatildeo Ray Tracing
2224 Zbrush
O Zbrush [Pix15] eacute uma ferramenta de modelaccedilatildeo 3D baseada nos conceitos de Digital Mo-
delling Daacute ao artista muacuteltiplas Brushes que permitem manipular o objeto a ser definido com
paradigmas transportados de outras aacutereas artiacutesticas Pode tornar mais acessiacutevel para um utilizador
pouco experiente com alguns paradigmas da Computaccedilatildeo Graacutefica a modelaccedilatildeo de objetos com
consideraacutevel detalhe e liberdade artiacutestica [Spe11]
23 Sumaacuterio
Apoacutes o levantamento do estado da arte eacute possiacutevel constatar que as ferramentas de modelaccedilatildeo
manual satildeo a escolha de eleiccedilatildeo para contextos em que o modelador deseja o maior niacutevel controlo
possiacutevel sobre o objeto a ser produzido No entanto considerando ferramentas de modelaccedilatildeo
procedimental tem existido um esforccedilo por parte desta comunidade para tornar a correspondente
experiecircncia de utilizaccedilatildeo mais acessiacutevel a utilizadores pouco familiarizados com o funcionamento
do mesmo Por enquanto a utilizaccedilatildeo deste tipo de ferramentas ainda requer que o conteuacutedo
seja criado em ferramentas dedicadas completamente separadas das ferramentas tradicionais (ie
Maya Blender) essenciais para o trabalho artiacutestico levando a quebras no fluxo de trabalho
13
Estado da Arte e Trabalhos Relacionados
14
Capiacutetulo 3
Metodologia
Com os desenvolvimentos atuais na aacuterea de modelaccedilatildeo procedimental apresentados no capiacute-
tulo 2 eacute possiacutevel verificar que as soluccedilotildees de MP existentes permitem produzir variados tipos de
conteuacutedo tais como terrenos vegetaccedilatildeo edifiacutecios estradas e cidades por outro lado as respeti-
vas integraccedilotildees em ambientes de modelaccedilatildeo manual satildeo algo limitadas ou apenas disponiacuteveis em
ferramentas externas especializadas num uacutenico tipo de conteuacutedo
Da mesma forma como verificado em 21 foram efetuadas vaacuterias tentativas pela comunidade
envolvida em geraccedilatildeo procedimental no sentido a melhorar a interaccedilatildeo com ferramentas dedica-
das agrave geraccedilatildeo procedimental no entanto existe ainda uma grande margem para avanccedilo de uma
integraccedilatildeo geneacuterica destes processos numa ferramenta de modelaccedilatildeo manual Devido agrave falta de
soluccedilotildees que se integrem de forma transparente e acessiacutevel em ambientes de modelaccedilatildeo manual
pretende-se apresentar uma soluccedilatildeo com o objetivo de interligar as duas abordagens neste capiacute-
tulo Inicialmente seraacute apresentada em pormenor a arquitetura da soluccedilatildeo de seguida o protocolo
de comunicaccedilatildeo entre os dois ambientes de modelaccedilatildeo e finalmente seraacute proposto um meacutetodo de
trabalho no qual seraacute descrita a interaccedilatildeo ideal entre o modelador e a soluccedilatildeo proposta
31 Meacutetodo de Trabalho
Numa interaccedilatildeo ideal o modelador teria controlo absoluto sobre os meacutetodos de geraccedilatildeo proce-
dimental e seria possiacutevel modelar procedimentalmente sobre alteraccedilotildees manuais realizadas sobre
o objeto No entanto nem sempre eacute desejado esse niacutevel de controlo e interligaccedilatildeo entre as aborda-
gens Imaginando a modelaccedilatildeo de um edifiacutecio este eacute construiacutedo segundo meacutetodos procedimentais
e recebe como entrada um poliacutegono que delimita a fundaccedilatildeo assim como paracircmetros numeacutericos e
booleanos que definem a geometria resultante Depois de modelado procedimentalmente o objeto
eacute adicionado ao ambiente de modelaccedilatildeo manual onde o modelador pode realizar alteraccedilotildees em
detalhes na geometria ou mesmo alteraccedilotildees profundas na geometria do mesmo
15
Metodologia
Considerando uma situaccedilatildeo em que o modelador realizou alteraccedilotildees profundas na geometria
produzida como por exemplo a reparticcedilatildeo de uma das fachadas do edifiacutecio em trecircs fachadas
Assim que realizadas estas alteraccedilotildees o utilizador pretende alterar a altura do edifiacutecio alterando o
paracircmetro correspondente e requisitando uma atualizaccedilatildeo Para ser possiacutevel manter as alteraccedilotildees
realizadas manualmente e em simultacircneo respeitar as regras definidas pela geraccedilatildeo procedimen-
tal seria necessaacuterio converter estas alteraccedilotildees em regras possiacuteveis de definir no escopo do ambiente
de geraccedilatildeo procedimental
De qualquer das formas as alteraccedilotildees realizadas no ponto anterior podem simplesmente natildeo
fazer sentido apoacutes a aplicaccedilatildeo sobre o objeto que foi reproduzido seguindo as regras definias
por um procedimento Devido a esta limitaccedilatildeo eacute assumido que assim que o utilizador requisita
uma nova execuccedilatildeo de um procedimento o qual natildeo tem problemas em descartar as alteraccedilotildees
executadas manualmente sobre o objeto em questatildeo
Tendo em consideraccedilatildeo esta limitaccedilatildeo eacute possiacutevel estruturar um fluxo de trabalho que melhor
explore as vantagens e limitaccedilotildees de ambas as abordagens de geraccedilatildeo de conteuacutedo tridimensional
O utilizador tem uma panoacuteplia de conteuacutedos procedimentais ao seu dispor que podem ser definidas
via paracircmetros numeacutericos e geomeacutetricos O conteuacutedo eacute adicionado ao ambiente de modelaccedilatildeo ma-
nual e os paracircmetros podem ainda ser editados alterados ao custo de que as modificaccedilotildees manuais
realizadas sobre o objeto sejam descartadas
32 Metodologias de Interaccedilatildeo com o Utilizador
Em relaccedilatildeo agrave interaccedilatildeo com o utilizador foram estudadas trecircs abordagens para a interaccedilatildeo com
meacutetodos de geraccedilatildeo procedimental em ambiente de modelaccedilatildeo manual
321 Modificadores
O conceito de modificadores eacute jaacute utilizado em ambientes de modelaccedilatildeo manual eg no Blen-
der [Bap14 Ble15e] onde satildeo utilizados para realizar operaccedilotildees sobre objetos na cena sem destruir
a geometria subjacente apenas modificam a forma como os objetos satildeo percecionados pelo motor
de renderizaccedilatildeo Esta abordagem eacute uacutetil em situaccedilotildees onde o procedimento a ser executado en-
volve modificaccedilotildees sobre uma geometria base como tal permitindo realizar muacuteltiplas alteraccedilotildees
sobre um objeto podendo estas ser facilmente canceladas recuperando o objeto original No en-
tanto nem todos os recursos de geraccedilatildeo procedimental incidem sobre modificaccedilatildeo de geometria
Os meios de geraccedilatildeo procedimental em muitas situaccedilotildees produzem objetos e cenaacuterios uacutenicos e
independentes de qualquer geometria de entrada
322 Grafos
A abordagem de interaccedilatildeo via grafos eacute atualmente utilizada num ambiente de modelaccedilatildeo ma-
nual para a ediccedilatildeo de materiais [Ble15d] Tambeacutem chamada de Flow-Based Programming esta
16
Metodologia
abordagem permite apresentar ao utilizador os procedimentos como uma caixa negra com pos-
siacuteveis entradas e saiacutedas representadas como ligaccedilotildees de fluxo A correspondente utilizaccedilatildeo na
interaccedilatildeo com geraccedilatildeo procedimental pode permitir o encadeamento de muacuteltiplos procedimentos
No entanto a abordagem pode ser mais trabalhosa para o utilizador introduzindo um niacutevel de
interaccedilatildeo adicional para cada objeto introduzido na cena
323 Funccedilotildees
Esta abordagem disponibiliza ao utilizador cada recurso de geraccedilatildeo procedimental como uma
funccedilatildeo disponiacutevel a qualquer momento na interface da ferramenta de modelaccedilatildeo manual Aquando
da respetiva invocaccedilatildeo satildeo requisitados aos utilizadores os paracircmetros necessaacuterios agrave execuccedilatildeo
A abordagem em causa eacute potencialmente a mais faacutecil de adotar por parte dos utilizadores de
ferramentas de modelaccedilatildeo manual Devido agrave simplicidade na interaccedilatildeo assim como a reduzida
necessidade de tempo e recursos para a implementaccedilatildeo esta foi a abordagem de interaccedilatildeo utilizada
na soluccedilatildeo desenvolvida
33 Arquitetura da Soluccedilatildeo
Para abordar este problema eacute proposta a utilizaccedilatildeo de duas aplicaccedilotildees jaacute presentes no mer-
cado Uma aplicaccedilatildeo dedicada agrave modelaccedilatildeo procedimental e uma aplicaccedilatildeo de modelaccedilatildeo manual
Foi escolhida esta abordagem na medida em que eacute possiacutevel utilizar duas aplicaccedilotildees jaacute existentes
sendo possiacutevel dessa forma aproveitar os pontos fortes de cada soluccedilatildeo com o intuito de otimi-
zar o processo de criaccedilatildeo de novos cenaacuterios e conteuacutedo tridimensional Esta abordagem pode ser
representada como uma soluccedilatildeo estruturada numa arquitetura Cliente-Servidor em que a aplica-
ccedilatildeo de geraccedilatildeo procedimental eacute capaz de fornecer serviccedilos de geraccedilatildeo de conteuacutedo a um ou mais
clientes de modelaccedilatildeo Esta abordagem interliga as duas aplicaccedilotildees atraveacutes de um protocolo de
comunicaccedilatildeo Este permite ao utilizador da ferramenta de modelaccedilatildeo manual requisitar a produ-
ccedilatildeo de conteuacutedo seguindo os valores impostos pelo utilizador nos paracircmetros do procedimento
requisitado O protocolo eacute descrito em maior detalhe na secccedilatildeo 34
331 Vantagens
Faacutecil integraccedilatildeo em diferentes plataformas Devido agrave arquitetura ser baseada na comunicaccedilatildeo
entre duas aplicaccedilotildees por um protocolo de comunicaccedilatildeo geneacuterico eacute com alguma facili-
dade que se realiza a interligaccedilatildeo com diferentes soluccedilotildees de geraccedilatildeo procedimental ou de
modelaccedilatildeo manual Sendo assim possiacutevel a expansatildeo para novos ambientes de modelaccedilatildeo
manual ou mesmo introduzir novas soluccedilotildees de geraccedilatildeo procedimental
Escalabilidade A arquitetura proposta poderaacute permitir que esta seja implementada de modo a que
um servidor central de geraccedilatildeo procedimental sirva por exemplo num ambiente empresa-
rial como um repositoacuterio de recursos de geraccedilatildeo de conteuacutedos desta forma permitindo
17
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
ccopy Rui Gonccedilalves 2016
Juntando Modelaccedilatildeo 3D Manual e Procedimental
Rui Miguel Barros Gonccedilalves
Mestrado Integrado em Engenharia Informaacutetica e Computaccedilatildeo
1 de Fevereiro de 2016
Resumo
Na aacuterea da modelaccedilatildeo tridimensional existem duas grandes vertentes modelaccedilatildeo manual emodelaccedilatildeo procedimental Na primeira o utilizador modela o objeto interagindo diretamente como resultado atraveacutes de ferramentas virtuais que em alguns casos se aproximam daquelas utili-zadas por modeladores em objetos reais desta forma permitindo um controlo direto e fino sobreo que estaacute a ser produzido Em modelaccedilatildeo procedimental os objetos satildeo construiacutedos de formaautomaacutetica a partir de vaacuterias condiccedilotildees definidas pelo utilizador atraveacutes de regras textuais numalinguagem dedicada ou de grafos de fluxo de dados permitindo um produccedilatildeo raacutepida em em gran-des quantidades de conteuacutedo 3D No entanto nem sempre a interaccedilatildeo com estes meacutetodos eacute a maisintuitiva Em situaccedilotildees em que eacute necessaacuterio introduzir detalhes particulares o processo de criaccedilatildeoprocedimental torna-se demasiado trabalhoso Para esses casos a modelaccedilatildeo manual seria a maisadequada para efetuar correccedilotildees ou ajustes em detalhes Eacute assim importante encontrar um meioque permita combinar as vantagens da modelaccedilatildeo manual com as vantagens da modelaccedilatildeo pro-cedimental para que os potenciais utilizadores possam criar modelos tridimensionais com maioreficiecircncia
Esta dissertaccedilatildeo tecircm como objetivo avaliar possiacuteveis abordagens de integraccedilatildeo das duas ver-tentes de modelaccedilatildeo e o impacto da respetiva utilizaccedilatildeo Para tal foi implementada e testada umasoluccedilatildeo que visa integrar a ferramenta de modelaccedilatildeo procedimental Construct na ferramenta demodelaccedilatildeo manual Blender
i
ii
Abstract
The domain of tridimensional modelling contains two major approaches manual modellingand procedural modelling In the first the user models the object interacting directly with theresult through virtual tools which in some cases work similarly to those utilized by modelers inreal objects thus allowing for direct and rigorous control over what is being produced In pro-cedural modelling the objects are created automatically through several user-defined conditionsby textual rules in a dedicated language or data-flow graphs allowing for quick and large-scaleproduction of 3D content On the other hand interaction with these methods isnrsquot always the mostintuitive In cases where itrsquos necessary to introduce particular details the procedural generationprocess becomes too taxing For those situations manual modelling would be the most adequate toperform corrections or small adjustments over details So it is important to find a medium whichpermits combining the advantages of manual modelling with those of procedural modelling sothat potential users may create tridimensional models with greater efficiency
This dissertation has as its objective the evaluation of possible integrations of the two mainapproaches of 3D modelling and the impact of the corresponding usage To that purpose a solu-tion that aims to integrate the procedural modelling tool Construct in the manual modelling toolBlender was implemented and tested
iii
iv
Agradecimentos
Comeccedilo por agradecer aos meus orientadores o Professor Rui Pedro Amaral Rodrigues PedroAmorim Brandatildeo da Silva e o Joatildeo Tiago Neto Jacob pelo seu trabalho conselhos e apoio semos quais esta dissertaccedilatildeo natildeo seria concluiacuteda Agradeccedilo tambeacutem ao Professor Pedro Cardoso daFaculdade de Belas Artes da Universidade do Porto pelo apoio dado no decorrer desta dissertaccedilatildeo
Agradeccedilo a todos os membros da Faculdade de Engenharia da Universidade do Porto e doDepartamento de Engenharia Informaacutetica e Computaccedilatildeo por me motivarem e ensinarem durantedestes anos
Agradeccedilo em particular ao meu colega e amigo Joatildeo Almeida pelo apoio que me deu na revisatildeodeste documento Finalmente gostaria de agradecer aos meus paiacutes irmatildeo amigos colegas decurso e familiares pelo apoio que me deram ao longo do meu percurso acadeacutemico
Rui Miguel Barros Gonccedilalves
v
vi
ldquoWhat we usually consider as impossible are simply engineering problemstherersquos no law of physics preventing themrdquo
Dr Michio Kaku
vii
viii
Conteuacutedo
1 Introduccedilatildeo 111 Contexto 212 Motivaccedilatildeo e Problema 213 Objetivos 314 Estrutura do documento 3
2 Estado da Arte e Trabalhos Relacionados 521 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais 5
211 Teacutecnicas Sketch-based 5212 Editores Visuais 8213 Modelaccedilatildeo Procedimental Invertida 9
22 Modelaccedilatildeo 3D Manual 10221 Teacutecnicas de Modelaccedilatildeo Manual 10222 Ferramentas de Modelaccedilatildeo 3D 11
23 Sumaacuterio 13
3 Metodologia 1531 Meacutetodo de Trabalho 1532 Metodologias de Interaccedilatildeo com o Utilizador 16
321 Modificadores 16322 Grafos 16323 Funccedilotildees 17
33 Arquitetura da Soluccedilatildeo 17331 Vantagens 17332 Desvantagens 18
34 Protocolo de Comunicaccedilatildeo 19
4 Implementaccedilatildeo 2141 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual 2142 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental 2243 Comunicaccedilatildeo 2344 Construccedilatildeo da Interface 2545 Execuccedilatildeo 26
5 Teste da Soluccedilatildeo e Resultados Obtidos 3151 Metodologia de Teste 3152 Resultados 36
ix
CONTEUacuteDO
6 Conclusotildees e Trabalho Futuro 3961 Trabalho Futuro 39
Referecircncias 41
A Mensagens JSON 47A1 JSON de Pedido de Abertura do Projeto Urban 47A2 JSON de Informaccedilatildeo do Projeto Urban 47A3 Exemplo de Pedido para Gerar um Grafo 49A4 Exemplo de Resposta de Erro do Servidor 50
B Principais Grafos do Projeto Urban 51
C Cenaacuterios Resultantes dos Testes com Utilizadores 55
x
Lista de Figuras
11 Captura de ecratilde do viacutedeo jogo Crysis 3 da Electronic Arts 2
21 Procedural sketching of virtual worlds por Smelik et al [STdKB10] 622 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et
al [IOI06b IOI06a] 723 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch 824 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13] 925 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14] 1026 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modelo
NURBS 1127 Interface da ferramenta Blender 1228 Interface da ferramenta Autodesk Maya 12
31 Diagrama do sistema proposto 18
41 Editor Construct em execuccedilatildeo 2242 Grafo exemplo e respetiva geometria produzida 2343 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct 2444 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct
a abrir 2445 Barra de ferramentas depois de aberto um projeto 2646 JSON enviado ao servidor para a execuccedilatildeo de um grafo 2647 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base 2748 Edifiacutecio depois de adicionado agrave cena 2749 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores 28410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular 28411 Custom Properties de um objeto produzido por um grafo Cube 29
51 Cenaacuterio requisitado aos utilizadores 3152 Exemplos de resultados possiacuteveis do grafo Building 3253 Exemplo de resultado do grafo Window 3354 Exemplo de resultado do grafo Door 3355 Exemplo de resultado do grafo CityStreets 3456 Cursor 3D do Blender 36
B1 Grafo Building como visto no editor Construct 51B2 Grafo CityStreets como visto no editor Construct 52B3 Grafo Window como visto no editor Construct 52B4 Grafo Door como visto no editor Construct 53
xi
LISTA DE FIGURAS
B5 Grafo DetailedRoof como visto no editor Construct 53
C1 Cenaacuterio criado pelo utilizador 3 55C2 Cenaacuterio criado pelo utilizador 4 56
xii
Lista de Tabelas
41 Estatiacutesticas dos principais foacuteruns 2242 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender 25
51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e otempo utilizado para construir o cenaacuterio utilizando o add-on desenvolvido 37
52 Resultados da avaliaccedilatildeo de usabilidade do sistema 37
xiii
LISTA DE TABELAS
xiv
Abreviaturas e Siacutembolos
API Application Programming InterfaceCAD Computer-Aided DesignCASE Computer-Aided Software EngineeringCGI Computer-Generated ImageJSON JavaScript Object NotationMP Modelaccedilatildeo ProcedimentalGP Geraccedilatildeo ProcedimentalMM Modelaccedilatildeo ManualSUS System Usability ScaleTCP Transmission Control Protocol
xv
Capiacutetulo 1
Introduccedilatildeo
A criaccedilatildeo de ambientes virtuais eacute um toacutepico muito relevante em computaccedilatildeo graacutefica e reali-
dade virtual tendo aplicaccedilotildees na induacutestria do entretenimento para a produccedilatildeo filmes e videojogos
entre outros Na induacutestria do cinema estes ambientes virtuais satildeo utilizados para criar imagens
impossiacuteveis de reproduzir atraveacutes de meios praacuteticos Na induacutestria dos videojogos cada vez mais
encontramos jogos em ambientes de maior dimensatildeo e com um elevado niacutevel de detalhe (Figura
11)
Em modelaccedilatildeo a abordagem tradicional eacute a de Modelaccedilatildeo Manual que permite ao artista
controlo completo e fino do objeto a ser criado No que toca agrave criaccedilatildeo de cenaacuterios de elevadas
dimensotildees como montanhas cidades estradas e vegetaccedilatildeo a abordagem tradicional torna-se cada
vez menos viaacutevel A introduccedilatildeo de meacutetodos procedimentais na geraccedilatildeo destes conteuacutedos permite
produzir resultados de alta qualidade com alguma facilidade produzindo cenaacuterios numa fraccedilatildeo do
tempo e do custo correspondentes agrave respetiva produccedilatildeo por meio de modelaccedilatildeo manual
Apesar do grande impacto positivo que esta abordagem trouxe para a induacutestria de um ponto
de vista artiacutestico nem sempre o resultado eacute o mais desejado desta forma podendo necessitar
da introduccedilatildeo de pormenores e alteraccedilotildees finas agrave respetiva geometria para produzir um resultado
uacutenico e mais proacuteximo da visatildeo artiacutestica do criador Para tal tecircm sido desenvolvidas teacutecnicas
para uma interaccedilatildeo mais intuitiva com a modelaccedilatildeo procedimental tentado dar ao modelador um
melhor controlo sobre os meacutetodos automatizados que lhes estatildeo subjacentes natildeo possuindo ainda
o niacutevel de controlo fino que uma ferramenta de modelaccedilatildeo manual pode oferecer
1
Introduccedilatildeo
Figura 11 Captura de ecratilde do viacutedeo jogo Crysis 3 da Electronic Arts
11 Contexto
Esta dissertaccedilatildeo insere-se na aacuterea da computaccedilatildeo graacutefica mais especificamente na aacuterea da mo-
delaccedilatildeo tridimensional geraccedilatildeo procedimental de modelos 3D e interaccedilatildeo com os mesmos Estas
aacutereas intersectam-se em rumo a uma melhor interaccedilatildeo com recursos de geraccedilatildeo procedimental
num ambiente de modelaccedilatildeo manual
Esta dissertaccedilatildeo foi realizada na Faculdade de Engenharia da Universidade do Porto no Labo-
ratoacuterio de IampD de Computaccedilatildeo Graacutefica Interaccedilatildeo e Jogos
12 Motivaccedilatildeo e Problema
Os avanccedilos no desenvolvimento de hardware e software resultam numa necessidade de con-
teuacutedo tridimensional maior e mais detalhado criando uma maior carga nas equipas que os pro-
duzem Como mencionado previamente a utilizaccedilatildeo de modelaccedilatildeo procedimental para a criaccedilatildeo
raacutepida de ambientes tridimensionais eacute altamente apelativa para a induacutestria permitindo poupar
tempo e dinheiro comparativamente a uma abordagem manual
No entanto esta abordagem dificulta ao modelador a introduccedilatildeo de pormenores pois os meacute-
todos procedimentais satildeo definidos tipicamente por um conjunto de regras e paracircmetros de uma
forma natildeo intuitiva ou de controlo limitado A simples modificaccedilatildeo de um paracircmetro pode criar
uma reaccedilatildeo em cadeia de modificaccedilotildees que alteram por completo o modelo gerado Eacute assim ape-
lativo encontrar um meacutetodo que melhor aproveite as vantagens das duas abordagens permitindo
aos modeladores uma produccedilatildeo de conteuacutedo tridimensional mais raacutepida e controlada
2
Introduccedilatildeo
13 Objetivos
O objetivo principal deste trabalho eacute desenvolver uma soluccedilatildeo que melhor aproveite as vanta-
gens das duas principais abordagens agrave modelaccedilatildeo 3D para tal eacute possiacutevel identificar os seguintes
objetivos especiacuteficos
bull Investigar o estado da arte da aacuterea da modelaccedilatildeo procedimental e modelaccedilatildeo manual em
particular os avanccedilos realizados na interaccedilatildeo com os meacutetodos utilizados em modelaccedilatildeo pro-
cedimental
bull Estudar as metodologias possiacuteveis para abordar o problema
bull Desenvolver uma soluccedilatildeo utilizando uma abordagem possiacutevel com os recursos disponiacuteveis
bull Testar a soluccedilatildeo com utilizadores proficientes em modelaccedilatildeo de conteuacutedo 3D
14 Estrutura do documento
Esta dissertaccedilatildeo encontra-se dividida em 6 capiacutetulos anexos e referecircncias O capiacutetulo pre-
sente consiste numa descriccedilatildeo do problema da motivaccedilatildeo e dos objetivos propostos para a cor-
respondente realizaccedilatildeo No capiacutetulo 2 eacute realizado um levantamento do estado da arte nas aacutereas
da modelaccedilatildeo procedimental e modelaccedilatildeo manual em especial os avanccedilos realizados na interaccedilatildeo
com os meacutetodos utilizados em modelaccedilatildeo procedimental No capiacutetulo 3 satildeo discutidas as meto-
dologias estudadas para a melhor interaccedilatildeo entre as duas abordagens agrave modelaccedilatildeo sendo tambeacutem
apresentada com maior detalhe a metodologia a ser utilizada
No capiacutetulo 4 satildeo descritos alguns detalhes de implementaccedilatildeo da soluccedilatildeo desenvolvida base-
ada na metodologia discutida no capiacutetulo 3
No capiacutetulo 5 eacute apresentada a metodologia de teste utilizada para avaliar a soluccedilatildeo desenvol-
vida sendo tambeacutem apresentados os resultados obtidos
No capiacutetulo 6 o final da dissertaccedilatildeo satildeo resumidas algumas constataccedilotildees e conclusotildees rea-
lizadas sobre esta dissertaccedilatildeo Eacute efetuada tambeacutem uma listagem de alguns pontos para potencial
trabalho futuro
3
Introduccedilatildeo
4
Capiacutetulo 2
Estado da Arte e TrabalhosRelacionados
Neste capiacutetulo seraacute realizada uma revisatildeo bibliograacutefica que visa apresentar todos os avanccedilos
realizados nas aacutereas da interaccedilatildeo com os meacutetodos de geraccedilatildeo procedimental Seratildeo apresentados
os tipos de conteuacutedo passiacuteveis de serem produzidos por meio destes meacutetodos bem como as teacutec-
nicas utilizadas para a respetiva interaccedilatildeo e geraccedilatildeo Iratildeo tambeacutem ser apresentadas as abordagens
existentes para uma modelaccedilatildeo manual e as ferramentas existentes no mercado
21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundosvirtuais
O paradigma de interaccedilatildeo com meacutetodos de geraccedilatildeo procedimental eacute tradicionalmente funci-
onal Cada procedimento pode ser considerado uma caixa negra de operaccedilotildees que dependendo
de certos valores de entrada produz um ou mais resultados A interaccedilatildeo com estes nem sempre
eacute a mais intuitiva pois para atingir o resultado desejado envolve em repetidas tentativa e erro por
parte do utilizador No entanto em anos recentes tem existido um avanccedilo consideraacutevel nesta aacuterea
tentado conceder ao utilizador maior controlo sobre os meacutetodos de geraccedilatildeo procedimental com
abordagens como Sketch-based editores visuais e Modelaccedilatildeo Procedimental Invertida
211 Teacutecnicas Sketch-based
Esta abordagem tenta aproximar o tipo de interaccedilatildeo com que os principais utilizadores de
meacutetodos de Modelaccedilatildeo Procedimental estatildeo familiarizados Noccedilotildees como Brushes e Sketches satildeo
alguns dos conceitos mais populares entre designers profissionais
5
Estado da Arte e Trabalhos Relacionados
2111 Terrenos
De Carpentier et al [dCB09] propuseram um meacutetodo de ediccedilatildeo de terrenos no qual eacute dada ao
utilizador a possibilidade de alterar o heightfield atraveacutes de procedural brushes tentando combinar
a interaccedilatildeo manual localizada com a modificaccedilatildeo da parametrizaccedilatildeo por completo de heightfields
Esta abordagem eacute capaz de produzir alteraccedilotildees a tempo real graccedilas agrave respetiva implementaccedilatildeo
com shaders
Smelik et al [STdKB10] seguindo a respetiva proposta de modelaccedilatildeo de mundos virtuais
[STdKB08] propotildeem a utilizaccedilatildeo da abordagem Procedural sketching e demonstram-na num
protoacutetipo intitulado de SketchaWorld Esta abordagem eacute dividida em dois principais modos de
interaccedilatildeo (Figura 21) Landscape Mode e Feature Mode
Figura 21 Procedural sketching of virtual worlds por Smelik et al [STdKB10]
No primeiro o utilizador interage com uma vista top-down do terreno divido em grelha e eacute
capaz de definir a informaccedilatildeo geoloacutegica de cada ceacutelula atraveacutes do uso de Brushes Em Feature
Mode o utilizador manipula pontos de controlo correspondendo a vetores ou poliacutegonos que deli-
mitam a localizaccedilatildeo de cidades rios e vegetaccedilatildeo A ferramenta fornece feedback da construccedilatildeo do
terreno a um ritmo consideraacutevel para uma interaccedilatildeo fluida Esta tambeacutem dispotildee de funcionalida-
des como undo e redo para uma melhorar a interaccedilatildeo entre o utilizador e a ferramenta permitindo
assim a introduccedilatildeo de alteraccedilotildees e caso estas natildeo sejam desejadas pelo utilizador estas podem
ser desfeitas rapidamente Gain et al [GMSe09] propotildeem uma soluccedilatildeo que permite ao utilizador
esboccedilar as silhuetas e limites de corpos montanhosos a serem gerados
6
Estado da Arte e Trabalhos Relacionados
2112 Estradas
Num esforccedilo de melhorar a interaccedilatildeo com path layouts Singh et al [SM08] desenvolveram a
ferramenta Drive que permite a conceptualizaccedilatildeo de redes rodoviaacuterias tridimensionais por meio
de esboccedilos que satildeo posteriormente aproximados a clotoacuteides (Curvas em que o raio varia line-
armente) Com esta abordagem eacute possiacutevel produzir itineraacuterios em que as transiccedilotildees entre raios
de curvatura satildeo lineares tornando-os assim adequados para a conduccedilatildeo A ferramenta tambeacutem
introduz Terrain sensitive sketching que por meios automaacuteticos coloca sinalizaccedilatildeo no percurso e
vegetaccedilatildeo nas redondezas
2113 Vegetaccedilatildeo
Figura 22 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et al[IOI06b IOI06a]
O trabalho de Ijiri et al [IOI06b IOI06a] apresenta uma teacutecnica que atraveacutes de traccedilados defi-
nidos pelo utilizador (Figura 22) permite a manipulaccedilatildeo da direccedilatildeo de crescimento de vegetaccedilatildeo
produzida por L-Systems uma abordagem jaacute muito estudada para a criaccedilatildeo de vegetaccedilatildeo pro-
posta por Lindenmayer [Lin68] como um tipo de gramaacutetica formal capaz de representar padrotildees
e geometria fractal existente na vegetaccedilatildeo Em 1988 foi proposto por Prusinkiewicz [PLH88] a
utilizaccedilatildeo de L-systems para a modelaccedilatildeo de vegetaccedilatildeo Ao longo das ultimas deacutecadas tecircm sido
realizados avanccedilos consideraacuteveis na produccedilatildeo de vegetaccedilatildeo realiacutestica [WP95] e a respetiva inte-
raccedilatildeo com o seu meio ambiente [MP96 Pru00] tentado assim produzir vegetaccedilatildeo que melhor
simule o comportamento fiacutesico e bioloacutegico de vegetaccedilatildeo real
Mais recentemente o trabalho de Palubicky et al [PHL+09] foi expandido e transportado
para uma aplicaccedilatildeo para dispositivos iPad em que o modelador tem um controlo fino sobre o
crescimento de uma aacutervore Utilizando o conceito de tree self-organization Longay et al criaram
7
Estado da Arte e Trabalhos Relacionados
a ferramenta TreeSketch 23 que estimula a competiccedilatildeo entre os ramos de uma aacutervore por espaccedilo
e luz dentro dos paracircmetros e inputs visuais dados pelo utilizador [LRBP12]
Figura 23 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch
212 Editores Visuais
Numa tentativa de melhorar a interaccedilatildeo com modelaccedilatildeo procedimental baseada em gramaacuteticas
[WWSR03 MWH+06] Lipp et al propuseram uma abordagem que permite a manipulaccedilatildeo direta
do resultado produzido por uma gramaacutetica O utilizador pode manipular diretamente no objeto as
respetivas dimensotildees e configuraccedilotildees [LWW08]
Mais recentemente Krecklau et al [KK12] introduziram uma abordagem que permite a ge-
raccedilatildeo de cenas a partir de primitivas de alto niacutevel e a correspondente manipulaccedilatildeo por interaccedilatildeo
direta na cena consequentemente permitindo a utilizadores menos experientes a utilizaccedilatildeo de
gramaacuteticas procedimentais complexas sem a necessidade de interaccedilatildeo textual com as mesmas
2121 Visual Node Based
Editores Visual Node Based satildeo utilizados em muitas aplicaccedilotildees comercias como meio de
dar ao utilizador feedback visual do fluxo de informaccedilatildeo Encontra-se em editores de shaders
[Hol15 Aut15b] editores de animaccedilotildees [Tec15] e em editores de texturas [Cod15] A vasta uti-
lizaccedilatildeo da teacutecnica na aacuterea de produccedilatildeo de conteuacutedo 3D por utilizadores com pouca experiecircncia
de programaccedilatildeo levou a que investigadores a utilizassem para a especificaccedilatildeo de gramaacuteticas de
produccedilatildeo
Nesse contexto Patow [Pat12] desenvolveu uma soluccedilatildeo para a construccedilatildeo e manipulaccedilatildeo de
gramaacuteticas por meio de um editor visual onde noacutes que representam operaccedilotildees geomeacutetricas dos
correspondentes antecessores transmitem o resultado aos noacutes sucessores Na mesma publica-
ccedilatildeo Patow realccedila a importacircncia que esta abordagem acarreta para a modelaccedilatildeo procedimental de
edifiacutecios e admite que existe ainda muito potencial por explorar
8
Estado da Arte e Trabalhos Relacionados
Mais recentemente o trabalho de Silva et al [SMBC13] apresenta uma metodologia de edi-
ccedilatildeo em que grafos podem ser encapsulados em noacutes designados Component capazes de representar
construccedilotildees complexas Os noacutes podem ser facilmente introduzidos noutros grafos e editados por
meio de filtros de fluxo colocados nas arestas ou por restriccedilotildees que auxiliam a especificar a utili-
zaccedilatildeo dos noacutes (Figura 24)
Figura 24 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13]
213 Modelaccedilatildeo Procedimental Invertida
Inverse PM eacute uma teacutecnica em que um dado modelo de entrada eacute aproximado a uma represen-
taccedilatildeo procedimental
Aliaga et al [ARB07] apresenta a reconstruccedilatildeo de edifiacutecios por meio de fotografias Nesta
abordagem o utilizador define os limites das fachadas do edifiacutecio criando uma representaccedilatildeo
minimalista De seguida eacute automaticamente aproximada uma gramaacutetica que melhor representa
o edifiacutecio em questatildeo Com os trabalhos de Šrsquotava et al [ŠBM+10] na parametrizaccedilatildeo de arte
vetorial 2D e de Mitra et al [MGP06] em encontrar simetrias em objetos tridimensionais Bokeloh
et al [BWS10] aplica estes conceitos para a descoberta de simetrias nos objetos e a consequente
aproximaccedilatildeo de gramaacuteticas que definam o objeto em questatildeo
As abordagens atuais focam-se em Modelaccedilatildeo invertida de ambientes urbanos no entanto
Vanegas et al [VGDA+12] demonstram uma metodologia de aproximaccedilatildeo de gramaacuteticas capazes
de representar para aleacutem de edifiacutecios sistemas complexos de vegetaccedilatildeo aproximados a um objeto
jaacute existente
9
Estado da Arte e Trabalhos Relacionados
22 Modelaccedilatildeo 3D Manual
Para a produccedilatildeo de objetos tridimensionais os modeladores utilizam ferramentas dedicadas
que lhes datildeo um controlo total sobre o modelo a ser construiacutedo Estes variam em metaacuteforas de
interface e em puacuteblico alvo Nesta secccedilatildeo vatildeo ser abordadas as teacutecnicas de modelaccedilatildeo atualmente
utilizadas por estas ferramentas e seratildeo listadas as ferramentas existentes no mercado e as respeti-
vas funcionalidades principais
221 Teacutecnicas de Modelaccedilatildeo Manual
2211 Polygon Modelling
Polygon Modelling eacute uma abordagem para a representaccedilatildeo de superfiacutecies tridimensionais utili-
zando poliacutegonos estes satildeo representados por veacutertices e arestas e em grupos formam uma Polygon
Mesh que pode ser armazenada de muacuteltiplas formas [TM06 Bau72 Smi06] Eacute possiacutevel criar ma-
lhas veacutertice a veacutertice manualmente No entanto eacute comum a respetiva manipulaccedilatildeo em software
graacutefico concedendo aos modeladores ferramentas interativas como Blender Autodesk Maya e 3D
Studio Max
Figura 25 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14]
Uma das abordagens mais comuns eacute denominada Box Modelling na qual uma forma geomeacute-
trica considerada uma primitiva (ie cubo esfera cilindro) eacute esculpida iterativamente por pas-
sos de subdivisatildeo do objeto e subsequente manipulaccedilatildeo da geometria ateacute se obter o objeto final
[Jon02 sub14] A figura 25 demonstra da teacutecnica Box Modelling para a modelaccedilatildeo de uma face
Esta abordagem pode ser considerada uma abordagem Subtrativa pois eacute atraveacutes da reduccedilatildeo de um
objeto base que eacute obtido o objeto desejado
10
Estado da Arte e Trabalhos Relacionados
O polygon modelling caracteriza-se pelo controlo direto sobre a colocaccedilatildeo de cada veacutertice de
uma superfiacutecie permitindo dessa forma um controlo fino e preciso sobre o resultado a produzir
2212 NURBS
NURBS ou Non-uniform rational B-spline eacute uma generalizaccedilatildeo de B-Splines e Curvas de Beacute-
zier [KR79 Cab92] um modelo matemaacutetico usado para representar curvas e superfiacutecies com
grande precisatildeo e flexibilidade (Figura 26) Eacute principalmente utilizado em aacutereas da computaccedilatildeo
graacutefica (CAD CAM CAE) onde a precisatildeo dos modelos obtidos eacute muito importante Inicialmente
estudada por Matemaacuteticos como I J Schoenberg [Cob84] foi aplicada em sistemas CAD para a
modelaccedilatildeo na induacutestria Automoacutevel [Beacute83 Beacutez81 Bez68]
Figura 26 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modeloNURBS
2213 Digital Sculpting
Digital Sculpting eacute a adaptaccedilatildeo de teacutecnicas utilizadas para moldar materiais como o barro agrave
modelaccedilatildeo 3D Estas ferramentas permitem ao modelador empurrar puxar polir vincare
adicionar ou remover volume Perry et al [PF01] introduziram Kizamu um dos primeiros passos
na aacuterea do Digital Sculpting Os modelos satildeo representados no que eacute chamado de Adaptively Sam-
pled Distance Fields (ADF) [FPRJ00] que permite representar dados volumeacutetricos que tornam o
processo de Digital Sculpting possiacutevel
222 Ferramentas de Modelaccedilatildeo 3D
2221 Blender
O Blender [ble15a] eacute uma ferramenta profissional de modelaccedilatildeo de coacutedigo aberto desen-
volvida pela Blender Foundation Suporta uma grande variedade de primitivas geomeacutetricas in-
11
Estado da Arte e Trabalhos Relacionados
Figura 27 Interface da ferramenta Blender
cluiacutendo Polygon Meshes curvas de Bezier superfiacutecies NURBS Metaballs e Digital Sculpting
Esta destaca-se por ser gratuita e pela facilidade de criar extensotildees [ble15b] usando a API Python
existente [ble15c] que permite adicionar novas funcionalidades agrave ferramenta
2222 Autodesk Maya
Figura 28 Interface da ferramenta Autodesk Maya
O Autodesk Maya [Aut15b] eacute uma ferramenta de produccedilatildeo de conteuacutedo 3D utilizada nas induacutes-
trias do cinema televisatildeo videojogos e arquitetura Eacute de coacutedigo fechado e a respetiva utilizaccedilatildeo
requer que o utilizador possua uma licenccedila Tal como o Blender o Maya daacute aos modeladores
ferramentas para estes criarem objetos de uma forma interativa 28 Apesar de ser uma ferramenta
versaacutetil e capaz de satisfazer as necessidades de todas induacutestrias acima referidas o Autodesk
Maya tende a ser mais utilizado pela induacutestria do Cinema devido agrave vasta customizaccedilatildeo possiacutevel de
aspetos importantes para esta induacutestria como Animaccedilatildeo e VFX [Aut15c]
12
Estado da Arte e Trabalhos Relacionados
2223 Autodesk 3D Studio Max
O 3D Studio Max [Aut15a] eacute outra ferramenta da Autodesk em muitos aspetos semelhante
ao Maya No entanto o 3DS Max estaacute apenas disponiacutevel para maacutequinas de sistema operativo
Windows e sempre foi mais utilizado pela induacutestria dos videojogos para a criaccedilatildeo de modelos 3D
Tal como o Autodesk Maya este dispotildee de poderosos motores de renderizaccedilatildeo Ray Tracing
2224 Zbrush
O Zbrush [Pix15] eacute uma ferramenta de modelaccedilatildeo 3D baseada nos conceitos de Digital Mo-
delling Daacute ao artista muacuteltiplas Brushes que permitem manipular o objeto a ser definido com
paradigmas transportados de outras aacutereas artiacutesticas Pode tornar mais acessiacutevel para um utilizador
pouco experiente com alguns paradigmas da Computaccedilatildeo Graacutefica a modelaccedilatildeo de objetos com
consideraacutevel detalhe e liberdade artiacutestica [Spe11]
23 Sumaacuterio
Apoacutes o levantamento do estado da arte eacute possiacutevel constatar que as ferramentas de modelaccedilatildeo
manual satildeo a escolha de eleiccedilatildeo para contextos em que o modelador deseja o maior niacutevel controlo
possiacutevel sobre o objeto a ser produzido No entanto considerando ferramentas de modelaccedilatildeo
procedimental tem existido um esforccedilo por parte desta comunidade para tornar a correspondente
experiecircncia de utilizaccedilatildeo mais acessiacutevel a utilizadores pouco familiarizados com o funcionamento
do mesmo Por enquanto a utilizaccedilatildeo deste tipo de ferramentas ainda requer que o conteuacutedo
seja criado em ferramentas dedicadas completamente separadas das ferramentas tradicionais (ie
Maya Blender) essenciais para o trabalho artiacutestico levando a quebras no fluxo de trabalho
13
Estado da Arte e Trabalhos Relacionados
14
Capiacutetulo 3
Metodologia
Com os desenvolvimentos atuais na aacuterea de modelaccedilatildeo procedimental apresentados no capiacute-
tulo 2 eacute possiacutevel verificar que as soluccedilotildees de MP existentes permitem produzir variados tipos de
conteuacutedo tais como terrenos vegetaccedilatildeo edifiacutecios estradas e cidades por outro lado as respeti-
vas integraccedilotildees em ambientes de modelaccedilatildeo manual satildeo algo limitadas ou apenas disponiacuteveis em
ferramentas externas especializadas num uacutenico tipo de conteuacutedo
Da mesma forma como verificado em 21 foram efetuadas vaacuterias tentativas pela comunidade
envolvida em geraccedilatildeo procedimental no sentido a melhorar a interaccedilatildeo com ferramentas dedica-
das agrave geraccedilatildeo procedimental no entanto existe ainda uma grande margem para avanccedilo de uma
integraccedilatildeo geneacuterica destes processos numa ferramenta de modelaccedilatildeo manual Devido agrave falta de
soluccedilotildees que se integrem de forma transparente e acessiacutevel em ambientes de modelaccedilatildeo manual
pretende-se apresentar uma soluccedilatildeo com o objetivo de interligar as duas abordagens neste capiacute-
tulo Inicialmente seraacute apresentada em pormenor a arquitetura da soluccedilatildeo de seguida o protocolo
de comunicaccedilatildeo entre os dois ambientes de modelaccedilatildeo e finalmente seraacute proposto um meacutetodo de
trabalho no qual seraacute descrita a interaccedilatildeo ideal entre o modelador e a soluccedilatildeo proposta
31 Meacutetodo de Trabalho
Numa interaccedilatildeo ideal o modelador teria controlo absoluto sobre os meacutetodos de geraccedilatildeo proce-
dimental e seria possiacutevel modelar procedimentalmente sobre alteraccedilotildees manuais realizadas sobre
o objeto No entanto nem sempre eacute desejado esse niacutevel de controlo e interligaccedilatildeo entre as aborda-
gens Imaginando a modelaccedilatildeo de um edifiacutecio este eacute construiacutedo segundo meacutetodos procedimentais
e recebe como entrada um poliacutegono que delimita a fundaccedilatildeo assim como paracircmetros numeacutericos e
booleanos que definem a geometria resultante Depois de modelado procedimentalmente o objeto
eacute adicionado ao ambiente de modelaccedilatildeo manual onde o modelador pode realizar alteraccedilotildees em
detalhes na geometria ou mesmo alteraccedilotildees profundas na geometria do mesmo
15
Metodologia
Considerando uma situaccedilatildeo em que o modelador realizou alteraccedilotildees profundas na geometria
produzida como por exemplo a reparticcedilatildeo de uma das fachadas do edifiacutecio em trecircs fachadas
Assim que realizadas estas alteraccedilotildees o utilizador pretende alterar a altura do edifiacutecio alterando o
paracircmetro correspondente e requisitando uma atualizaccedilatildeo Para ser possiacutevel manter as alteraccedilotildees
realizadas manualmente e em simultacircneo respeitar as regras definidas pela geraccedilatildeo procedimen-
tal seria necessaacuterio converter estas alteraccedilotildees em regras possiacuteveis de definir no escopo do ambiente
de geraccedilatildeo procedimental
De qualquer das formas as alteraccedilotildees realizadas no ponto anterior podem simplesmente natildeo
fazer sentido apoacutes a aplicaccedilatildeo sobre o objeto que foi reproduzido seguindo as regras definias
por um procedimento Devido a esta limitaccedilatildeo eacute assumido que assim que o utilizador requisita
uma nova execuccedilatildeo de um procedimento o qual natildeo tem problemas em descartar as alteraccedilotildees
executadas manualmente sobre o objeto em questatildeo
Tendo em consideraccedilatildeo esta limitaccedilatildeo eacute possiacutevel estruturar um fluxo de trabalho que melhor
explore as vantagens e limitaccedilotildees de ambas as abordagens de geraccedilatildeo de conteuacutedo tridimensional
O utilizador tem uma panoacuteplia de conteuacutedos procedimentais ao seu dispor que podem ser definidas
via paracircmetros numeacutericos e geomeacutetricos O conteuacutedo eacute adicionado ao ambiente de modelaccedilatildeo ma-
nual e os paracircmetros podem ainda ser editados alterados ao custo de que as modificaccedilotildees manuais
realizadas sobre o objeto sejam descartadas
32 Metodologias de Interaccedilatildeo com o Utilizador
Em relaccedilatildeo agrave interaccedilatildeo com o utilizador foram estudadas trecircs abordagens para a interaccedilatildeo com
meacutetodos de geraccedilatildeo procedimental em ambiente de modelaccedilatildeo manual
321 Modificadores
O conceito de modificadores eacute jaacute utilizado em ambientes de modelaccedilatildeo manual eg no Blen-
der [Bap14 Ble15e] onde satildeo utilizados para realizar operaccedilotildees sobre objetos na cena sem destruir
a geometria subjacente apenas modificam a forma como os objetos satildeo percecionados pelo motor
de renderizaccedilatildeo Esta abordagem eacute uacutetil em situaccedilotildees onde o procedimento a ser executado en-
volve modificaccedilotildees sobre uma geometria base como tal permitindo realizar muacuteltiplas alteraccedilotildees
sobre um objeto podendo estas ser facilmente canceladas recuperando o objeto original No en-
tanto nem todos os recursos de geraccedilatildeo procedimental incidem sobre modificaccedilatildeo de geometria
Os meios de geraccedilatildeo procedimental em muitas situaccedilotildees produzem objetos e cenaacuterios uacutenicos e
independentes de qualquer geometria de entrada
322 Grafos
A abordagem de interaccedilatildeo via grafos eacute atualmente utilizada num ambiente de modelaccedilatildeo ma-
nual para a ediccedilatildeo de materiais [Ble15d] Tambeacutem chamada de Flow-Based Programming esta
16
Metodologia
abordagem permite apresentar ao utilizador os procedimentos como uma caixa negra com pos-
siacuteveis entradas e saiacutedas representadas como ligaccedilotildees de fluxo A correspondente utilizaccedilatildeo na
interaccedilatildeo com geraccedilatildeo procedimental pode permitir o encadeamento de muacuteltiplos procedimentos
No entanto a abordagem pode ser mais trabalhosa para o utilizador introduzindo um niacutevel de
interaccedilatildeo adicional para cada objeto introduzido na cena
323 Funccedilotildees
Esta abordagem disponibiliza ao utilizador cada recurso de geraccedilatildeo procedimental como uma
funccedilatildeo disponiacutevel a qualquer momento na interface da ferramenta de modelaccedilatildeo manual Aquando
da respetiva invocaccedilatildeo satildeo requisitados aos utilizadores os paracircmetros necessaacuterios agrave execuccedilatildeo
A abordagem em causa eacute potencialmente a mais faacutecil de adotar por parte dos utilizadores de
ferramentas de modelaccedilatildeo manual Devido agrave simplicidade na interaccedilatildeo assim como a reduzida
necessidade de tempo e recursos para a implementaccedilatildeo esta foi a abordagem de interaccedilatildeo utilizada
na soluccedilatildeo desenvolvida
33 Arquitetura da Soluccedilatildeo
Para abordar este problema eacute proposta a utilizaccedilatildeo de duas aplicaccedilotildees jaacute presentes no mer-
cado Uma aplicaccedilatildeo dedicada agrave modelaccedilatildeo procedimental e uma aplicaccedilatildeo de modelaccedilatildeo manual
Foi escolhida esta abordagem na medida em que eacute possiacutevel utilizar duas aplicaccedilotildees jaacute existentes
sendo possiacutevel dessa forma aproveitar os pontos fortes de cada soluccedilatildeo com o intuito de otimi-
zar o processo de criaccedilatildeo de novos cenaacuterios e conteuacutedo tridimensional Esta abordagem pode ser
representada como uma soluccedilatildeo estruturada numa arquitetura Cliente-Servidor em que a aplica-
ccedilatildeo de geraccedilatildeo procedimental eacute capaz de fornecer serviccedilos de geraccedilatildeo de conteuacutedo a um ou mais
clientes de modelaccedilatildeo Esta abordagem interliga as duas aplicaccedilotildees atraveacutes de um protocolo de
comunicaccedilatildeo Este permite ao utilizador da ferramenta de modelaccedilatildeo manual requisitar a produ-
ccedilatildeo de conteuacutedo seguindo os valores impostos pelo utilizador nos paracircmetros do procedimento
requisitado O protocolo eacute descrito em maior detalhe na secccedilatildeo 34
331 Vantagens
Faacutecil integraccedilatildeo em diferentes plataformas Devido agrave arquitetura ser baseada na comunicaccedilatildeo
entre duas aplicaccedilotildees por um protocolo de comunicaccedilatildeo geneacuterico eacute com alguma facili-
dade que se realiza a interligaccedilatildeo com diferentes soluccedilotildees de geraccedilatildeo procedimental ou de
modelaccedilatildeo manual Sendo assim possiacutevel a expansatildeo para novos ambientes de modelaccedilatildeo
manual ou mesmo introduzir novas soluccedilotildees de geraccedilatildeo procedimental
Escalabilidade A arquitetura proposta poderaacute permitir que esta seja implementada de modo a que
um servidor central de geraccedilatildeo procedimental sirva por exemplo num ambiente empresa-
rial como um repositoacuterio de recursos de geraccedilatildeo de conteuacutedos desta forma permitindo
17
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Juntando Modelaccedilatildeo 3D Manual e Procedimental
Rui Miguel Barros Gonccedilalves
Mestrado Integrado em Engenharia Informaacutetica e Computaccedilatildeo
1 de Fevereiro de 2016
Resumo
Na aacuterea da modelaccedilatildeo tridimensional existem duas grandes vertentes modelaccedilatildeo manual emodelaccedilatildeo procedimental Na primeira o utilizador modela o objeto interagindo diretamente como resultado atraveacutes de ferramentas virtuais que em alguns casos se aproximam daquelas utili-zadas por modeladores em objetos reais desta forma permitindo um controlo direto e fino sobreo que estaacute a ser produzido Em modelaccedilatildeo procedimental os objetos satildeo construiacutedos de formaautomaacutetica a partir de vaacuterias condiccedilotildees definidas pelo utilizador atraveacutes de regras textuais numalinguagem dedicada ou de grafos de fluxo de dados permitindo um produccedilatildeo raacutepida em em gran-des quantidades de conteuacutedo 3D No entanto nem sempre a interaccedilatildeo com estes meacutetodos eacute a maisintuitiva Em situaccedilotildees em que eacute necessaacuterio introduzir detalhes particulares o processo de criaccedilatildeoprocedimental torna-se demasiado trabalhoso Para esses casos a modelaccedilatildeo manual seria a maisadequada para efetuar correccedilotildees ou ajustes em detalhes Eacute assim importante encontrar um meioque permita combinar as vantagens da modelaccedilatildeo manual com as vantagens da modelaccedilatildeo pro-cedimental para que os potenciais utilizadores possam criar modelos tridimensionais com maioreficiecircncia
Esta dissertaccedilatildeo tecircm como objetivo avaliar possiacuteveis abordagens de integraccedilatildeo das duas ver-tentes de modelaccedilatildeo e o impacto da respetiva utilizaccedilatildeo Para tal foi implementada e testada umasoluccedilatildeo que visa integrar a ferramenta de modelaccedilatildeo procedimental Construct na ferramenta demodelaccedilatildeo manual Blender
i
ii
Abstract
The domain of tridimensional modelling contains two major approaches manual modellingand procedural modelling In the first the user models the object interacting directly with theresult through virtual tools which in some cases work similarly to those utilized by modelers inreal objects thus allowing for direct and rigorous control over what is being produced In pro-cedural modelling the objects are created automatically through several user-defined conditionsby textual rules in a dedicated language or data-flow graphs allowing for quick and large-scaleproduction of 3D content On the other hand interaction with these methods isnrsquot always the mostintuitive In cases where itrsquos necessary to introduce particular details the procedural generationprocess becomes too taxing For those situations manual modelling would be the most adequate toperform corrections or small adjustments over details So it is important to find a medium whichpermits combining the advantages of manual modelling with those of procedural modelling sothat potential users may create tridimensional models with greater efficiency
This dissertation has as its objective the evaluation of possible integrations of the two mainapproaches of 3D modelling and the impact of the corresponding usage To that purpose a solu-tion that aims to integrate the procedural modelling tool Construct in the manual modelling toolBlender was implemented and tested
iii
iv
Agradecimentos
Comeccedilo por agradecer aos meus orientadores o Professor Rui Pedro Amaral Rodrigues PedroAmorim Brandatildeo da Silva e o Joatildeo Tiago Neto Jacob pelo seu trabalho conselhos e apoio semos quais esta dissertaccedilatildeo natildeo seria concluiacuteda Agradeccedilo tambeacutem ao Professor Pedro Cardoso daFaculdade de Belas Artes da Universidade do Porto pelo apoio dado no decorrer desta dissertaccedilatildeo
Agradeccedilo a todos os membros da Faculdade de Engenharia da Universidade do Porto e doDepartamento de Engenharia Informaacutetica e Computaccedilatildeo por me motivarem e ensinarem durantedestes anos
Agradeccedilo em particular ao meu colega e amigo Joatildeo Almeida pelo apoio que me deu na revisatildeodeste documento Finalmente gostaria de agradecer aos meus paiacutes irmatildeo amigos colegas decurso e familiares pelo apoio que me deram ao longo do meu percurso acadeacutemico
Rui Miguel Barros Gonccedilalves
v
vi
ldquoWhat we usually consider as impossible are simply engineering problemstherersquos no law of physics preventing themrdquo
Dr Michio Kaku
vii
viii
Conteuacutedo
1 Introduccedilatildeo 111 Contexto 212 Motivaccedilatildeo e Problema 213 Objetivos 314 Estrutura do documento 3
2 Estado da Arte e Trabalhos Relacionados 521 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais 5
211 Teacutecnicas Sketch-based 5212 Editores Visuais 8213 Modelaccedilatildeo Procedimental Invertida 9
22 Modelaccedilatildeo 3D Manual 10221 Teacutecnicas de Modelaccedilatildeo Manual 10222 Ferramentas de Modelaccedilatildeo 3D 11
23 Sumaacuterio 13
3 Metodologia 1531 Meacutetodo de Trabalho 1532 Metodologias de Interaccedilatildeo com o Utilizador 16
321 Modificadores 16322 Grafos 16323 Funccedilotildees 17
33 Arquitetura da Soluccedilatildeo 17331 Vantagens 17332 Desvantagens 18
34 Protocolo de Comunicaccedilatildeo 19
4 Implementaccedilatildeo 2141 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual 2142 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental 2243 Comunicaccedilatildeo 2344 Construccedilatildeo da Interface 2545 Execuccedilatildeo 26
5 Teste da Soluccedilatildeo e Resultados Obtidos 3151 Metodologia de Teste 3152 Resultados 36
ix
CONTEUacuteDO
6 Conclusotildees e Trabalho Futuro 3961 Trabalho Futuro 39
Referecircncias 41
A Mensagens JSON 47A1 JSON de Pedido de Abertura do Projeto Urban 47A2 JSON de Informaccedilatildeo do Projeto Urban 47A3 Exemplo de Pedido para Gerar um Grafo 49A4 Exemplo de Resposta de Erro do Servidor 50
B Principais Grafos do Projeto Urban 51
C Cenaacuterios Resultantes dos Testes com Utilizadores 55
x
Lista de Figuras
11 Captura de ecratilde do viacutedeo jogo Crysis 3 da Electronic Arts 2
21 Procedural sketching of virtual worlds por Smelik et al [STdKB10] 622 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et
al [IOI06b IOI06a] 723 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch 824 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13] 925 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14] 1026 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modelo
NURBS 1127 Interface da ferramenta Blender 1228 Interface da ferramenta Autodesk Maya 12
31 Diagrama do sistema proposto 18
41 Editor Construct em execuccedilatildeo 2242 Grafo exemplo e respetiva geometria produzida 2343 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct 2444 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct
a abrir 2445 Barra de ferramentas depois de aberto um projeto 2646 JSON enviado ao servidor para a execuccedilatildeo de um grafo 2647 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base 2748 Edifiacutecio depois de adicionado agrave cena 2749 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores 28410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular 28411 Custom Properties de um objeto produzido por um grafo Cube 29
51 Cenaacuterio requisitado aos utilizadores 3152 Exemplos de resultados possiacuteveis do grafo Building 3253 Exemplo de resultado do grafo Window 3354 Exemplo de resultado do grafo Door 3355 Exemplo de resultado do grafo CityStreets 3456 Cursor 3D do Blender 36
B1 Grafo Building como visto no editor Construct 51B2 Grafo CityStreets como visto no editor Construct 52B3 Grafo Window como visto no editor Construct 52B4 Grafo Door como visto no editor Construct 53
xi
LISTA DE FIGURAS
B5 Grafo DetailedRoof como visto no editor Construct 53
C1 Cenaacuterio criado pelo utilizador 3 55C2 Cenaacuterio criado pelo utilizador 4 56
xii
Lista de Tabelas
41 Estatiacutesticas dos principais foacuteruns 2242 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender 25
51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e otempo utilizado para construir o cenaacuterio utilizando o add-on desenvolvido 37
52 Resultados da avaliaccedilatildeo de usabilidade do sistema 37
xiii
LISTA DE TABELAS
xiv
Abreviaturas e Siacutembolos
API Application Programming InterfaceCAD Computer-Aided DesignCASE Computer-Aided Software EngineeringCGI Computer-Generated ImageJSON JavaScript Object NotationMP Modelaccedilatildeo ProcedimentalGP Geraccedilatildeo ProcedimentalMM Modelaccedilatildeo ManualSUS System Usability ScaleTCP Transmission Control Protocol
xv
Capiacutetulo 1
Introduccedilatildeo
A criaccedilatildeo de ambientes virtuais eacute um toacutepico muito relevante em computaccedilatildeo graacutefica e reali-
dade virtual tendo aplicaccedilotildees na induacutestria do entretenimento para a produccedilatildeo filmes e videojogos
entre outros Na induacutestria do cinema estes ambientes virtuais satildeo utilizados para criar imagens
impossiacuteveis de reproduzir atraveacutes de meios praacuteticos Na induacutestria dos videojogos cada vez mais
encontramos jogos em ambientes de maior dimensatildeo e com um elevado niacutevel de detalhe (Figura
11)
Em modelaccedilatildeo a abordagem tradicional eacute a de Modelaccedilatildeo Manual que permite ao artista
controlo completo e fino do objeto a ser criado No que toca agrave criaccedilatildeo de cenaacuterios de elevadas
dimensotildees como montanhas cidades estradas e vegetaccedilatildeo a abordagem tradicional torna-se cada
vez menos viaacutevel A introduccedilatildeo de meacutetodos procedimentais na geraccedilatildeo destes conteuacutedos permite
produzir resultados de alta qualidade com alguma facilidade produzindo cenaacuterios numa fraccedilatildeo do
tempo e do custo correspondentes agrave respetiva produccedilatildeo por meio de modelaccedilatildeo manual
Apesar do grande impacto positivo que esta abordagem trouxe para a induacutestria de um ponto
de vista artiacutestico nem sempre o resultado eacute o mais desejado desta forma podendo necessitar
da introduccedilatildeo de pormenores e alteraccedilotildees finas agrave respetiva geometria para produzir um resultado
uacutenico e mais proacuteximo da visatildeo artiacutestica do criador Para tal tecircm sido desenvolvidas teacutecnicas
para uma interaccedilatildeo mais intuitiva com a modelaccedilatildeo procedimental tentado dar ao modelador um
melhor controlo sobre os meacutetodos automatizados que lhes estatildeo subjacentes natildeo possuindo ainda
o niacutevel de controlo fino que uma ferramenta de modelaccedilatildeo manual pode oferecer
1
Introduccedilatildeo
Figura 11 Captura de ecratilde do viacutedeo jogo Crysis 3 da Electronic Arts
11 Contexto
Esta dissertaccedilatildeo insere-se na aacuterea da computaccedilatildeo graacutefica mais especificamente na aacuterea da mo-
delaccedilatildeo tridimensional geraccedilatildeo procedimental de modelos 3D e interaccedilatildeo com os mesmos Estas
aacutereas intersectam-se em rumo a uma melhor interaccedilatildeo com recursos de geraccedilatildeo procedimental
num ambiente de modelaccedilatildeo manual
Esta dissertaccedilatildeo foi realizada na Faculdade de Engenharia da Universidade do Porto no Labo-
ratoacuterio de IampD de Computaccedilatildeo Graacutefica Interaccedilatildeo e Jogos
12 Motivaccedilatildeo e Problema
Os avanccedilos no desenvolvimento de hardware e software resultam numa necessidade de con-
teuacutedo tridimensional maior e mais detalhado criando uma maior carga nas equipas que os pro-
duzem Como mencionado previamente a utilizaccedilatildeo de modelaccedilatildeo procedimental para a criaccedilatildeo
raacutepida de ambientes tridimensionais eacute altamente apelativa para a induacutestria permitindo poupar
tempo e dinheiro comparativamente a uma abordagem manual
No entanto esta abordagem dificulta ao modelador a introduccedilatildeo de pormenores pois os meacute-
todos procedimentais satildeo definidos tipicamente por um conjunto de regras e paracircmetros de uma
forma natildeo intuitiva ou de controlo limitado A simples modificaccedilatildeo de um paracircmetro pode criar
uma reaccedilatildeo em cadeia de modificaccedilotildees que alteram por completo o modelo gerado Eacute assim ape-
lativo encontrar um meacutetodo que melhor aproveite as vantagens das duas abordagens permitindo
aos modeladores uma produccedilatildeo de conteuacutedo tridimensional mais raacutepida e controlada
2
Introduccedilatildeo
13 Objetivos
O objetivo principal deste trabalho eacute desenvolver uma soluccedilatildeo que melhor aproveite as vanta-
gens das duas principais abordagens agrave modelaccedilatildeo 3D para tal eacute possiacutevel identificar os seguintes
objetivos especiacuteficos
bull Investigar o estado da arte da aacuterea da modelaccedilatildeo procedimental e modelaccedilatildeo manual em
particular os avanccedilos realizados na interaccedilatildeo com os meacutetodos utilizados em modelaccedilatildeo pro-
cedimental
bull Estudar as metodologias possiacuteveis para abordar o problema
bull Desenvolver uma soluccedilatildeo utilizando uma abordagem possiacutevel com os recursos disponiacuteveis
bull Testar a soluccedilatildeo com utilizadores proficientes em modelaccedilatildeo de conteuacutedo 3D
14 Estrutura do documento
Esta dissertaccedilatildeo encontra-se dividida em 6 capiacutetulos anexos e referecircncias O capiacutetulo pre-
sente consiste numa descriccedilatildeo do problema da motivaccedilatildeo e dos objetivos propostos para a cor-
respondente realizaccedilatildeo No capiacutetulo 2 eacute realizado um levantamento do estado da arte nas aacutereas
da modelaccedilatildeo procedimental e modelaccedilatildeo manual em especial os avanccedilos realizados na interaccedilatildeo
com os meacutetodos utilizados em modelaccedilatildeo procedimental No capiacutetulo 3 satildeo discutidas as meto-
dologias estudadas para a melhor interaccedilatildeo entre as duas abordagens agrave modelaccedilatildeo sendo tambeacutem
apresentada com maior detalhe a metodologia a ser utilizada
No capiacutetulo 4 satildeo descritos alguns detalhes de implementaccedilatildeo da soluccedilatildeo desenvolvida base-
ada na metodologia discutida no capiacutetulo 3
No capiacutetulo 5 eacute apresentada a metodologia de teste utilizada para avaliar a soluccedilatildeo desenvol-
vida sendo tambeacutem apresentados os resultados obtidos
No capiacutetulo 6 o final da dissertaccedilatildeo satildeo resumidas algumas constataccedilotildees e conclusotildees rea-
lizadas sobre esta dissertaccedilatildeo Eacute efetuada tambeacutem uma listagem de alguns pontos para potencial
trabalho futuro
3
Introduccedilatildeo
4
Capiacutetulo 2
Estado da Arte e TrabalhosRelacionados
Neste capiacutetulo seraacute realizada uma revisatildeo bibliograacutefica que visa apresentar todos os avanccedilos
realizados nas aacutereas da interaccedilatildeo com os meacutetodos de geraccedilatildeo procedimental Seratildeo apresentados
os tipos de conteuacutedo passiacuteveis de serem produzidos por meio destes meacutetodos bem como as teacutec-
nicas utilizadas para a respetiva interaccedilatildeo e geraccedilatildeo Iratildeo tambeacutem ser apresentadas as abordagens
existentes para uma modelaccedilatildeo manual e as ferramentas existentes no mercado
21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundosvirtuais
O paradigma de interaccedilatildeo com meacutetodos de geraccedilatildeo procedimental eacute tradicionalmente funci-
onal Cada procedimento pode ser considerado uma caixa negra de operaccedilotildees que dependendo
de certos valores de entrada produz um ou mais resultados A interaccedilatildeo com estes nem sempre
eacute a mais intuitiva pois para atingir o resultado desejado envolve em repetidas tentativa e erro por
parte do utilizador No entanto em anos recentes tem existido um avanccedilo consideraacutevel nesta aacuterea
tentado conceder ao utilizador maior controlo sobre os meacutetodos de geraccedilatildeo procedimental com
abordagens como Sketch-based editores visuais e Modelaccedilatildeo Procedimental Invertida
211 Teacutecnicas Sketch-based
Esta abordagem tenta aproximar o tipo de interaccedilatildeo com que os principais utilizadores de
meacutetodos de Modelaccedilatildeo Procedimental estatildeo familiarizados Noccedilotildees como Brushes e Sketches satildeo
alguns dos conceitos mais populares entre designers profissionais
5
Estado da Arte e Trabalhos Relacionados
2111 Terrenos
De Carpentier et al [dCB09] propuseram um meacutetodo de ediccedilatildeo de terrenos no qual eacute dada ao
utilizador a possibilidade de alterar o heightfield atraveacutes de procedural brushes tentando combinar
a interaccedilatildeo manual localizada com a modificaccedilatildeo da parametrizaccedilatildeo por completo de heightfields
Esta abordagem eacute capaz de produzir alteraccedilotildees a tempo real graccedilas agrave respetiva implementaccedilatildeo
com shaders
Smelik et al [STdKB10] seguindo a respetiva proposta de modelaccedilatildeo de mundos virtuais
[STdKB08] propotildeem a utilizaccedilatildeo da abordagem Procedural sketching e demonstram-na num
protoacutetipo intitulado de SketchaWorld Esta abordagem eacute dividida em dois principais modos de
interaccedilatildeo (Figura 21) Landscape Mode e Feature Mode
Figura 21 Procedural sketching of virtual worlds por Smelik et al [STdKB10]
No primeiro o utilizador interage com uma vista top-down do terreno divido em grelha e eacute
capaz de definir a informaccedilatildeo geoloacutegica de cada ceacutelula atraveacutes do uso de Brushes Em Feature
Mode o utilizador manipula pontos de controlo correspondendo a vetores ou poliacutegonos que deli-
mitam a localizaccedilatildeo de cidades rios e vegetaccedilatildeo A ferramenta fornece feedback da construccedilatildeo do
terreno a um ritmo consideraacutevel para uma interaccedilatildeo fluida Esta tambeacutem dispotildee de funcionalida-
des como undo e redo para uma melhorar a interaccedilatildeo entre o utilizador e a ferramenta permitindo
assim a introduccedilatildeo de alteraccedilotildees e caso estas natildeo sejam desejadas pelo utilizador estas podem
ser desfeitas rapidamente Gain et al [GMSe09] propotildeem uma soluccedilatildeo que permite ao utilizador
esboccedilar as silhuetas e limites de corpos montanhosos a serem gerados
6
Estado da Arte e Trabalhos Relacionados
2112 Estradas
Num esforccedilo de melhorar a interaccedilatildeo com path layouts Singh et al [SM08] desenvolveram a
ferramenta Drive que permite a conceptualizaccedilatildeo de redes rodoviaacuterias tridimensionais por meio
de esboccedilos que satildeo posteriormente aproximados a clotoacuteides (Curvas em que o raio varia line-
armente) Com esta abordagem eacute possiacutevel produzir itineraacuterios em que as transiccedilotildees entre raios
de curvatura satildeo lineares tornando-os assim adequados para a conduccedilatildeo A ferramenta tambeacutem
introduz Terrain sensitive sketching que por meios automaacuteticos coloca sinalizaccedilatildeo no percurso e
vegetaccedilatildeo nas redondezas
2113 Vegetaccedilatildeo
Figura 22 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et al[IOI06b IOI06a]
O trabalho de Ijiri et al [IOI06b IOI06a] apresenta uma teacutecnica que atraveacutes de traccedilados defi-
nidos pelo utilizador (Figura 22) permite a manipulaccedilatildeo da direccedilatildeo de crescimento de vegetaccedilatildeo
produzida por L-Systems uma abordagem jaacute muito estudada para a criaccedilatildeo de vegetaccedilatildeo pro-
posta por Lindenmayer [Lin68] como um tipo de gramaacutetica formal capaz de representar padrotildees
e geometria fractal existente na vegetaccedilatildeo Em 1988 foi proposto por Prusinkiewicz [PLH88] a
utilizaccedilatildeo de L-systems para a modelaccedilatildeo de vegetaccedilatildeo Ao longo das ultimas deacutecadas tecircm sido
realizados avanccedilos consideraacuteveis na produccedilatildeo de vegetaccedilatildeo realiacutestica [WP95] e a respetiva inte-
raccedilatildeo com o seu meio ambiente [MP96 Pru00] tentado assim produzir vegetaccedilatildeo que melhor
simule o comportamento fiacutesico e bioloacutegico de vegetaccedilatildeo real
Mais recentemente o trabalho de Palubicky et al [PHL+09] foi expandido e transportado
para uma aplicaccedilatildeo para dispositivos iPad em que o modelador tem um controlo fino sobre o
crescimento de uma aacutervore Utilizando o conceito de tree self-organization Longay et al criaram
7
Estado da Arte e Trabalhos Relacionados
a ferramenta TreeSketch 23 que estimula a competiccedilatildeo entre os ramos de uma aacutervore por espaccedilo
e luz dentro dos paracircmetros e inputs visuais dados pelo utilizador [LRBP12]
Figura 23 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch
212 Editores Visuais
Numa tentativa de melhorar a interaccedilatildeo com modelaccedilatildeo procedimental baseada em gramaacuteticas
[WWSR03 MWH+06] Lipp et al propuseram uma abordagem que permite a manipulaccedilatildeo direta
do resultado produzido por uma gramaacutetica O utilizador pode manipular diretamente no objeto as
respetivas dimensotildees e configuraccedilotildees [LWW08]
Mais recentemente Krecklau et al [KK12] introduziram uma abordagem que permite a ge-
raccedilatildeo de cenas a partir de primitivas de alto niacutevel e a correspondente manipulaccedilatildeo por interaccedilatildeo
direta na cena consequentemente permitindo a utilizadores menos experientes a utilizaccedilatildeo de
gramaacuteticas procedimentais complexas sem a necessidade de interaccedilatildeo textual com as mesmas
2121 Visual Node Based
Editores Visual Node Based satildeo utilizados em muitas aplicaccedilotildees comercias como meio de
dar ao utilizador feedback visual do fluxo de informaccedilatildeo Encontra-se em editores de shaders
[Hol15 Aut15b] editores de animaccedilotildees [Tec15] e em editores de texturas [Cod15] A vasta uti-
lizaccedilatildeo da teacutecnica na aacuterea de produccedilatildeo de conteuacutedo 3D por utilizadores com pouca experiecircncia
de programaccedilatildeo levou a que investigadores a utilizassem para a especificaccedilatildeo de gramaacuteticas de
produccedilatildeo
Nesse contexto Patow [Pat12] desenvolveu uma soluccedilatildeo para a construccedilatildeo e manipulaccedilatildeo de
gramaacuteticas por meio de um editor visual onde noacutes que representam operaccedilotildees geomeacutetricas dos
correspondentes antecessores transmitem o resultado aos noacutes sucessores Na mesma publica-
ccedilatildeo Patow realccedila a importacircncia que esta abordagem acarreta para a modelaccedilatildeo procedimental de
edifiacutecios e admite que existe ainda muito potencial por explorar
8
Estado da Arte e Trabalhos Relacionados
Mais recentemente o trabalho de Silva et al [SMBC13] apresenta uma metodologia de edi-
ccedilatildeo em que grafos podem ser encapsulados em noacutes designados Component capazes de representar
construccedilotildees complexas Os noacutes podem ser facilmente introduzidos noutros grafos e editados por
meio de filtros de fluxo colocados nas arestas ou por restriccedilotildees que auxiliam a especificar a utili-
zaccedilatildeo dos noacutes (Figura 24)
Figura 24 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13]
213 Modelaccedilatildeo Procedimental Invertida
Inverse PM eacute uma teacutecnica em que um dado modelo de entrada eacute aproximado a uma represen-
taccedilatildeo procedimental
Aliaga et al [ARB07] apresenta a reconstruccedilatildeo de edifiacutecios por meio de fotografias Nesta
abordagem o utilizador define os limites das fachadas do edifiacutecio criando uma representaccedilatildeo
minimalista De seguida eacute automaticamente aproximada uma gramaacutetica que melhor representa
o edifiacutecio em questatildeo Com os trabalhos de Šrsquotava et al [ŠBM+10] na parametrizaccedilatildeo de arte
vetorial 2D e de Mitra et al [MGP06] em encontrar simetrias em objetos tridimensionais Bokeloh
et al [BWS10] aplica estes conceitos para a descoberta de simetrias nos objetos e a consequente
aproximaccedilatildeo de gramaacuteticas que definam o objeto em questatildeo
As abordagens atuais focam-se em Modelaccedilatildeo invertida de ambientes urbanos no entanto
Vanegas et al [VGDA+12] demonstram uma metodologia de aproximaccedilatildeo de gramaacuteticas capazes
de representar para aleacutem de edifiacutecios sistemas complexos de vegetaccedilatildeo aproximados a um objeto
jaacute existente
9
Estado da Arte e Trabalhos Relacionados
22 Modelaccedilatildeo 3D Manual
Para a produccedilatildeo de objetos tridimensionais os modeladores utilizam ferramentas dedicadas
que lhes datildeo um controlo total sobre o modelo a ser construiacutedo Estes variam em metaacuteforas de
interface e em puacuteblico alvo Nesta secccedilatildeo vatildeo ser abordadas as teacutecnicas de modelaccedilatildeo atualmente
utilizadas por estas ferramentas e seratildeo listadas as ferramentas existentes no mercado e as respeti-
vas funcionalidades principais
221 Teacutecnicas de Modelaccedilatildeo Manual
2211 Polygon Modelling
Polygon Modelling eacute uma abordagem para a representaccedilatildeo de superfiacutecies tridimensionais utili-
zando poliacutegonos estes satildeo representados por veacutertices e arestas e em grupos formam uma Polygon
Mesh que pode ser armazenada de muacuteltiplas formas [TM06 Bau72 Smi06] Eacute possiacutevel criar ma-
lhas veacutertice a veacutertice manualmente No entanto eacute comum a respetiva manipulaccedilatildeo em software
graacutefico concedendo aos modeladores ferramentas interativas como Blender Autodesk Maya e 3D
Studio Max
Figura 25 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14]
Uma das abordagens mais comuns eacute denominada Box Modelling na qual uma forma geomeacute-
trica considerada uma primitiva (ie cubo esfera cilindro) eacute esculpida iterativamente por pas-
sos de subdivisatildeo do objeto e subsequente manipulaccedilatildeo da geometria ateacute se obter o objeto final
[Jon02 sub14] A figura 25 demonstra da teacutecnica Box Modelling para a modelaccedilatildeo de uma face
Esta abordagem pode ser considerada uma abordagem Subtrativa pois eacute atraveacutes da reduccedilatildeo de um
objeto base que eacute obtido o objeto desejado
10
Estado da Arte e Trabalhos Relacionados
O polygon modelling caracteriza-se pelo controlo direto sobre a colocaccedilatildeo de cada veacutertice de
uma superfiacutecie permitindo dessa forma um controlo fino e preciso sobre o resultado a produzir
2212 NURBS
NURBS ou Non-uniform rational B-spline eacute uma generalizaccedilatildeo de B-Splines e Curvas de Beacute-
zier [KR79 Cab92] um modelo matemaacutetico usado para representar curvas e superfiacutecies com
grande precisatildeo e flexibilidade (Figura 26) Eacute principalmente utilizado em aacutereas da computaccedilatildeo
graacutefica (CAD CAM CAE) onde a precisatildeo dos modelos obtidos eacute muito importante Inicialmente
estudada por Matemaacuteticos como I J Schoenberg [Cob84] foi aplicada em sistemas CAD para a
modelaccedilatildeo na induacutestria Automoacutevel [Beacute83 Beacutez81 Bez68]
Figura 26 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modeloNURBS
2213 Digital Sculpting
Digital Sculpting eacute a adaptaccedilatildeo de teacutecnicas utilizadas para moldar materiais como o barro agrave
modelaccedilatildeo 3D Estas ferramentas permitem ao modelador empurrar puxar polir vincare
adicionar ou remover volume Perry et al [PF01] introduziram Kizamu um dos primeiros passos
na aacuterea do Digital Sculpting Os modelos satildeo representados no que eacute chamado de Adaptively Sam-
pled Distance Fields (ADF) [FPRJ00] que permite representar dados volumeacutetricos que tornam o
processo de Digital Sculpting possiacutevel
222 Ferramentas de Modelaccedilatildeo 3D
2221 Blender
O Blender [ble15a] eacute uma ferramenta profissional de modelaccedilatildeo de coacutedigo aberto desen-
volvida pela Blender Foundation Suporta uma grande variedade de primitivas geomeacutetricas in-
11
Estado da Arte e Trabalhos Relacionados
Figura 27 Interface da ferramenta Blender
cluiacutendo Polygon Meshes curvas de Bezier superfiacutecies NURBS Metaballs e Digital Sculpting
Esta destaca-se por ser gratuita e pela facilidade de criar extensotildees [ble15b] usando a API Python
existente [ble15c] que permite adicionar novas funcionalidades agrave ferramenta
2222 Autodesk Maya
Figura 28 Interface da ferramenta Autodesk Maya
O Autodesk Maya [Aut15b] eacute uma ferramenta de produccedilatildeo de conteuacutedo 3D utilizada nas induacutes-
trias do cinema televisatildeo videojogos e arquitetura Eacute de coacutedigo fechado e a respetiva utilizaccedilatildeo
requer que o utilizador possua uma licenccedila Tal como o Blender o Maya daacute aos modeladores
ferramentas para estes criarem objetos de uma forma interativa 28 Apesar de ser uma ferramenta
versaacutetil e capaz de satisfazer as necessidades de todas induacutestrias acima referidas o Autodesk
Maya tende a ser mais utilizado pela induacutestria do Cinema devido agrave vasta customizaccedilatildeo possiacutevel de
aspetos importantes para esta induacutestria como Animaccedilatildeo e VFX [Aut15c]
12
Estado da Arte e Trabalhos Relacionados
2223 Autodesk 3D Studio Max
O 3D Studio Max [Aut15a] eacute outra ferramenta da Autodesk em muitos aspetos semelhante
ao Maya No entanto o 3DS Max estaacute apenas disponiacutevel para maacutequinas de sistema operativo
Windows e sempre foi mais utilizado pela induacutestria dos videojogos para a criaccedilatildeo de modelos 3D
Tal como o Autodesk Maya este dispotildee de poderosos motores de renderizaccedilatildeo Ray Tracing
2224 Zbrush
O Zbrush [Pix15] eacute uma ferramenta de modelaccedilatildeo 3D baseada nos conceitos de Digital Mo-
delling Daacute ao artista muacuteltiplas Brushes que permitem manipular o objeto a ser definido com
paradigmas transportados de outras aacutereas artiacutesticas Pode tornar mais acessiacutevel para um utilizador
pouco experiente com alguns paradigmas da Computaccedilatildeo Graacutefica a modelaccedilatildeo de objetos com
consideraacutevel detalhe e liberdade artiacutestica [Spe11]
23 Sumaacuterio
Apoacutes o levantamento do estado da arte eacute possiacutevel constatar que as ferramentas de modelaccedilatildeo
manual satildeo a escolha de eleiccedilatildeo para contextos em que o modelador deseja o maior niacutevel controlo
possiacutevel sobre o objeto a ser produzido No entanto considerando ferramentas de modelaccedilatildeo
procedimental tem existido um esforccedilo por parte desta comunidade para tornar a correspondente
experiecircncia de utilizaccedilatildeo mais acessiacutevel a utilizadores pouco familiarizados com o funcionamento
do mesmo Por enquanto a utilizaccedilatildeo deste tipo de ferramentas ainda requer que o conteuacutedo
seja criado em ferramentas dedicadas completamente separadas das ferramentas tradicionais (ie
Maya Blender) essenciais para o trabalho artiacutestico levando a quebras no fluxo de trabalho
13
Estado da Arte e Trabalhos Relacionados
14
Capiacutetulo 3
Metodologia
Com os desenvolvimentos atuais na aacuterea de modelaccedilatildeo procedimental apresentados no capiacute-
tulo 2 eacute possiacutevel verificar que as soluccedilotildees de MP existentes permitem produzir variados tipos de
conteuacutedo tais como terrenos vegetaccedilatildeo edifiacutecios estradas e cidades por outro lado as respeti-
vas integraccedilotildees em ambientes de modelaccedilatildeo manual satildeo algo limitadas ou apenas disponiacuteveis em
ferramentas externas especializadas num uacutenico tipo de conteuacutedo
Da mesma forma como verificado em 21 foram efetuadas vaacuterias tentativas pela comunidade
envolvida em geraccedilatildeo procedimental no sentido a melhorar a interaccedilatildeo com ferramentas dedica-
das agrave geraccedilatildeo procedimental no entanto existe ainda uma grande margem para avanccedilo de uma
integraccedilatildeo geneacuterica destes processos numa ferramenta de modelaccedilatildeo manual Devido agrave falta de
soluccedilotildees que se integrem de forma transparente e acessiacutevel em ambientes de modelaccedilatildeo manual
pretende-se apresentar uma soluccedilatildeo com o objetivo de interligar as duas abordagens neste capiacute-
tulo Inicialmente seraacute apresentada em pormenor a arquitetura da soluccedilatildeo de seguida o protocolo
de comunicaccedilatildeo entre os dois ambientes de modelaccedilatildeo e finalmente seraacute proposto um meacutetodo de
trabalho no qual seraacute descrita a interaccedilatildeo ideal entre o modelador e a soluccedilatildeo proposta
31 Meacutetodo de Trabalho
Numa interaccedilatildeo ideal o modelador teria controlo absoluto sobre os meacutetodos de geraccedilatildeo proce-
dimental e seria possiacutevel modelar procedimentalmente sobre alteraccedilotildees manuais realizadas sobre
o objeto No entanto nem sempre eacute desejado esse niacutevel de controlo e interligaccedilatildeo entre as aborda-
gens Imaginando a modelaccedilatildeo de um edifiacutecio este eacute construiacutedo segundo meacutetodos procedimentais
e recebe como entrada um poliacutegono que delimita a fundaccedilatildeo assim como paracircmetros numeacutericos e
booleanos que definem a geometria resultante Depois de modelado procedimentalmente o objeto
eacute adicionado ao ambiente de modelaccedilatildeo manual onde o modelador pode realizar alteraccedilotildees em
detalhes na geometria ou mesmo alteraccedilotildees profundas na geometria do mesmo
15
Metodologia
Considerando uma situaccedilatildeo em que o modelador realizou alteraccedilotildees profundas na geometria
produzida como por exemplo a reparticcedilatildeo de uma das fachadas do edifiacutecio em trecircs fachadas
Assim que realizadas estas alteraccedilotildees o utilizador pretende alterar a altura do edifiacutecio alterando o
paracircmetro correspondente e requisitando uma atualizaccedilatildeo Para ser possiacutevel manter as alteraccedilotildees
realizadas manualmente e em simultacircneo respeitar as regras definidas pela geraccedilatildeo procedimen-
tal seria necessaacuterio converter estas alteraccedilotildees em regras possiacuteveis de definir no escopo do ambiente
de geraccedilatildeo procedimental
De qualquer das formas as alteraccedilotildees realizadas no ponto anterior podem simplesmente natildeo
fazer sentido apoacutes a aplicaccedilatildeo sobre o objeto que foi reproduzido seguindo as regras definias
por um procedimento Devido a esta limitaccedilatildeo eacute assumido que assim que o utilizador requisita
uma nova execuccedilatildeo de um procedimento o qual natildeo tem problemas em descartar as alteraccedilotildees
executadas manualmente sobre o objeto em questatildeo
Tendo em consideraccedilatildeo esta limitaccedilatildeo eacute possiacutevel estruturar um fluxo de trabalho que melhor
explore as vantagens e limitaccedilotildees de ambas as abordagens de geraccedilatildeo de conteuacutedo tridimensional
O utilizador tem uma panoacuteplia de conteuacutedos procedimentais ao seu dispor que podem ser definidas
via paracircmetros numeacutericos e geomeacutetricos O conteuacutedo eacute adicionado ao ambiente de modelaccedilatildeo ma-
nual e os paracircmetros podem ainda ser editados alterados ao custo de que as modificaccedilotildees manuais
realizadas sobre o objeto sejam descartadas
32 Metodologias de Interaccedilatildeo com o Utilizador
Em relaccedilatildeo agrave interaccedilatildeo com o utilizador foram estudadas trecircs abordagens para a interaccedilatildeo com
meacutetodos de geraccedilatildeo procedimental em ambiente de modelaccedilatildeo manual
321 Modificadores
O conceito de modificadores eacute jaacute utilizado em ambientes de modelaccedilatildeo manual eg no Blen-
der [Bap14 Ble15e] onde satildeo utilizados para realizar operaccedilotildees sobre objetos na cena sem destruir
a geometria subjacente apenas modificam a forma como os objetos satildeo percecionados pelo motor
de renderizaccedilatildeo Esta abordagem eacute uacutetil em situaccedilotildees onde o procedimento a ser executado en-
volve modificaccedilotildees sobre uma geometria base como tal permitindo realizar muacuteltiplas alteraccedilotildees
sobre um objeto podendo estas ser facilmente canceladas recuperando o objeto original No en-
tanto nem todos os recursos de geraccedilatildeo procedimental incidem sobre modificaccedilatildeo de geometria
Os meios de geraccedilatildeo procedimental em muitas situaccedilotildees produzem objetos e cenaacuterios uacutenicos e
independentes de qualquer geometria de entrada
322 Grafos
A abordagem de interaccedilatildeo via grafos eacute atualmente utilizada num ambiente de modelaccedilatildeo ma-
nual para a ediccedilatildeo de materiais [Ble15d] Tambeacutem chamada de Flow-Based Programming esta
16
Metodologia
abordagem permite apresentar ao utilizador os procedimentos como uma caixa negra com pos-
siacuteveis entradas e saiacutedas representadas como ligaccedilotildees de fluxo A correspondente utilizaccedilatildeo na
interaccedilatildeo com geraccedilatildeo procedimental pode permitir o encadeamento de muacuteltiplos procedimentos
No entanto a abordagem pode ser mais trabalhosa para o utilizador introduzindo um niacutevel de
interaccedilatildeo adicional para cada objeto introduzido na cena
323 Funccedilotildees
Esta abordagem disponibiliza ao utilizador cada recurso de geraccedilatildeo procedimental como uma
funccedilatildeo disponiacutevel a qualquer momento na interface da ferramenta de modelaccedilatildeo manual Aquando
da respetiva invocaccedilatildeo satildeo requisitados aos utilizadores os paracircmetros necessaacuterios agrave execuccedilatildeo
A abordagem em causa eacute potencialmente a mais faacutecil de adotar por parte dos utilizadores de
ferramentas de modelaccedilatildeo manual Devido agrave simplicidade na interaccedilatildeo assim como a reduzida
necessidade de tempo e recursos para a implementaccedilatildeo esta foi a abordagem de interaccedilatildeo utilizada
na soluccedilatildeo desenvolvida
33 Arquitetura da Soluccedilatildeo
Para abordar este problema eacute proposta a utilizaccedilatildeo de duas aplicaccedilotildees jaacute presentes no mer-
cado Uma aplicaccedilatildeo dedicada agrave modelaccedilatildeo procedimental e uma aplicaccedilatildeo de modelaccedilatildeo manual
Foi escolhida esta abordagem na medida em que eacute possiacutevel utilizar duas aplicaccedilotildees jaacute existentes
sendo possiacutevel dessa forma aproveitar os pontos fortes de cada soluccedilatildeo com o intuito de otimi-
zar o processo de criaccedilatildeo de novos cenaacuterios e conteuacutedo tridimensional Esta abordagem pode ser
representada como uma soluccedilatildeo estruturada numa arquitetura Cliente-Servidor em que a aplica-
ccedilatildeo de geraccedilatildeo procedimental eacute capaz de fornecer serviccedilos de geraccedilatildeo de conteuacutedo a um ou mais
clientes de modelaccedilatildeo Esta abordagem interliga as duas aplicaccedilotildees atraveacutes de um protocolo de
comunicaccedilatildeo Este permite ao utilizador da ferramenta de modelaccedilatildeo manual requisitar a produ-
ccedilatildeo de conteuacutedo seguindo os valores impostos pelo utilizador nos paracircmetros do procedimento
requisitado O protocolo eacute descrito em maior detalhe na secccedilatildeo 34
331 Vantagens
Faacutecil integraccedilatildeo em diferentes plataformas Devido agrave arquitetura ser baseada na comunicaccedilatildeo
entre duas aplicaccedilotildees por um protocolo de comunicaccedilatildeo geneacuterico eacute com alguma facili-
dade que se realiza a interligaccedilatildeo com diferentes soluccedilotildees de geraccedilatildeo procedimental ou de
modelaccedilatildeo manual Sendo assim possiacutevel a expansatildeo para novos ambientes de modelaccedilatildeo
manual ou mesmo introduzir novas soluccedilotildees de geraccedilatildeo procedimental
Escalabilidade A arquitetura proposta poderaacute permitir que esta seja implementada de modo a que
um servidor central de geraccedilatildeo procedimental sirva por exemplo num ambiente empresa-
rial como um repositoacuterio de recursos de geraccedilatildeo de conteuacutedos desta forma permitindo
17
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Resumo
Na aacuterea da modelaccedilatildeo tridimensional existem duas grandes vertentes modelaccedilatildeo manual emodelaccedilatildeo procedimental Na primeira o utilizador modela o objeto interagindo diretamente como resultado atraveacutes de ferramentas virtuais que em alguns casos se aproximam daquelas utili-zadas por modeladores em objetos reais desta forma permitindo um controlo direto e fino sobreo que estaacute a ser produzido Em modelaccedilatildeo procedimental os objetos satildeo construiacutedos de formaautomaacutetica a partir de vaacuterias condiccedilotildees definidas pelo utilizador atraveacutes de regras textuais numalinguagem dedicada ou de grafos de fluxo de dados permitindo um produccedilatildeo raacutepida em em gran-des quantidades de conteuacutedo 3D No entanto nem sempre a interaccedilatildeo com estes meacutetodos eacute a maisintuitiva Em situaccedilotildees em que eacute necessaacuterio introduzir detalhes particulares o processo de criaccedilatildeoprocedimental torna-se demasiado trabalhoso Para esses casos a modelaccedilatildeo manual seria a maisadequada para efetuar correccedilotildees ou ajustes em detalhes Eacute assim importante encontrar um meioque permita combinar as vantagens da modelaccedilatildeo manual com as vantagens da modelaccedilatildeo pro-cedimental para que os potenciais utilizadores possam criar modelos tridimensionais com maioreficiecircncia
Esta dissertaccedilatildeo tecircm como objetivo avaliar possiacuteveis abordagens de integraccedilatildeo das duas ver-tentes de modelaccedilatildeo e o impacto da respetiva utilizaccedilatildeo Para tal foi implementada e testada umasoluccedilatildeo que visa integrar a ferramenta de modelaccedilatildeo procedimental Construct na ferramenta demodelaccedilatildeo manual Blender
i
ii
Abstract
The domain of tridimensional modelling contains two major approaches manual modellingand procedural modelling In the first the user models the object interacting directly with theresult through virtual tools which in some cases work similarly to those utilized by modelers inreal objects thus allowing for direct and rigorous control over what is being produced In pro-cedural modelling the objects are created automatically through several user-defined conditionsby textual rules in a dedicated language or data-flow graphs allowing for quick and large-scaleproduction of 3D content On the other hand interaction with these methods isnrsquot always the mostintuitive In cases where itrsquos necessary to introduce particular details the procedural generationprocess becomes too taxing For those situations manual modelling would be the most adequate toperform corrections or small adjustments over details So it is important to find a medium whichpermits combining the advantages of manual modelling with those of procedural modelling sothat potential users may create tridimensional models with greater efficiency
This dissertation has as its objective the evaluation of possible integrations of the two mainapproaches of 3D modelling and the impact of the corresponding usage To that purpose a solu-tion that aims to integrate the procedural modelling tool Construct in the manual modelling toolBlender was implemented and tested
iii
iv
Agradecimentos
Comeccedilo por agradecer aos meus orientadores o Professor Rui Pedro Amaral Rodrigues PedroAmorim Brandatildeo da Silva e o Joatildeo Tiago Neto Jacob pelo seu trabalho conselhos e apoio semos quais esta dissertaccedilatildeo natildeo seria concluiacuteda Agradeccedilo tambeacutem ao Professor Pedro Cardoso daFaculdade de Belas Artes da Universidade do Porto pelo apoio dado no decorrer desta dissertaccedilatildeo
Agradeccedilo a todos os membros da Faculdade de Engenharia da Universidade do Porto e doDepartamento de Engenharia Informaacutetica e Computaccedilatildeo por me motivarem e ensinarem durantedestes anos
Agradeccedilo em particular ao meu colega e amigo Joatildeo Almeida pelo apoio que me deu na revisatildeodeste documento Finalmente gostaria de agradecer aos meus paiacutes irmatildeo amigos colegas decurso e familiares pelo apoio que me deram ao longo do meu percurso acadeacutemico
Rui Miguel Barros Gonccedilalves
v
vi
ldquoWhat we usually consider as impossible are simply engineering problemstherersquos no law of physics preventing themrdquo
Dr Michio Kaku
vii
viii
Conteuacutedo
1 Introduccedilatildeo 111 Contexto 212 Motivaccedilatildeo e Problema 213 Objetivos 314 Estrutura do documento 3
2 Estado da Arte e Trabalhos Relacionados 521 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais 5
211 Teacutecnicas Sketch-based 5212 Editores Visuais 8213 Modelaccedilatildeo Procedimental Invertida 9
22 Modelaccedilatildeo 3D Manual 10221 Teacutecnicas de Modelaccedilatildeo Manual 10222 Ferramentas de Modelaccedilatildeo 3D 11
23 Sumaacuterio 13
3 Metodologia 1531 Meacutetodo de Trabalho 1532 Metodologias de Interaccedilatildeo com o Utilizador 16
321 Modificadores 16322 Grafos 16323 Funccedilotildees 17
33 Arquitetura da Soluccedilatildeo 17331 Vantagens 17332 Desvantagens 18
34 Protocolo de Comunicaccedilatildeo 19
4 Implementaccedilatildeo 2141 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual 2142 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental 2243 Comunicaccedilatildeo 2344 Construccedilatildeo da Interface 2545 Execuccedilatildeo 26
5 Teste da Soluccedilatildeo e Resultados Obtidos 3151 Metodologia de Teste 3152 Resultados 36
ix
CONTEUacuteDO
6 Conclusotildees e Trabalho Futuro 3961 Trabalho Futuro 39
Referecircncias 41
A Mensagens JSON 47A1 JSON de Pedido de Abertura do Projeto Urban 47A2 JSON de Informaccedilatildeo do Projeto Urban 47A3 Exemplo de Pedido para Gerar um Grafo 49A4 Exemplo de Resposta de Erro do Servidor 50
B Principais Grafos do Projeto Urban 51
C Cenaacuterios Resultantes dos Testes com Utilizadores 55
x
Lista de Figuras
11 Captura de ecratilde do viacutedeo jogo Crysis 3 da Electronic Arts 2
21 Procedural sketching of virtual worlds por Smelik et al [STdKB10] 622 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et
al [IOI06b IOI06a] 723 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch 824 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13] 925 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14] 1026 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modelo
NURBS 1127 Interface da ferramenta Blender 1228 Interface da ferramenta Autodesk Maya 12
31 Diagrama do sistema proposto 18
41 Editor Construct em execuccedilatildeo 2242 Grafo exemplo e respetiva geometria produzida 2343 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct 2444 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct
a abrir 2445 Barra de ferramentas depois de aberto um projeto 2646 JSON enviado ao servidor para a execuccedilatildeo de um grafo 2647 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base 2748 Edifiacutecio depois de adicionado agrave cena 2749 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores 28410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular 28411 Custom Properties de um objeto produzido por um grafo Cube 29
51 Cenaacuterio requisitado aos utilizadores 3152 Exemplos de resultados possiacuteveis do grafo Building 3253 Exemplo de resultado do grafo Window 3354 Exemplo de resultado do grafo Door 3355 Exemplo de resultado do grafo CityStreets 3456 Cursor 3D do Blender 36
B1 Grafo Building como visto no editor Construct 51B2 Grafo CityStreets como visto no editor Construct 52B3 Grafo Window como visto no editor Construct 52B4 Grafo Door como visto no editor Construct 53
xi
LISTA DE FIGURAS
B5 Grafo DetailedRoof como visto no editor Construct 53
C1 Cenaacuterio criado pelo utilizador 3 55C2 Cenaacuterio criado pelo utilizador 4 56
xii
Lista de Tabelas
41 Estatiacutesticas dos principais foacuteruns 2242 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender 25
51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e otempo utilizado para construir o cenaacuterio utilizando o add-on desenvolvido 37
52 Resultados da avaliaccedilatildeo de usabilidade do sistema 37
xiii
LISTA DE TABELAS
xiv
Abreviaturas e Siacutembolos
API Application Programming InterfaceCAD Computer-Aided DesignCASE Computer-Aided Software EngineeringCGI Computer-Generated ImageJSON JavaScript Object NotationMP Modelaccedilatildeo ProcedimentalGP Geraccedilatildeo ProcedimentalMM Modelaccedilatildeo ManualSUS System Usability ScaleTCP Transmission Control Protocol
xv
Capiacutetulo 1
Introduccedilatildeo
A criaccedilatildeo de ambientes virtuais eacute um toacutepico muito relevante em computaccedilatildeo graacutefica e reali-
dade virtual tendo aplicaccedilotildees na induacutestria do entretenimento para a produccedilatildeo filmes e videojogos
entre outros Na induacutestria do cinema estes ambientes virtuais satildeo utilizados para criar imagens
impossiacuteveis de reproduzir atraveacutes de meios praacuteticos Na induacutestria dos videojogos cada vez mais
encontramos jogos em ambientes de maior dimensatildeo e com um elevado niacutevel de detalhe (Figura
11)
Em modelaccedilatildeo a abordagem tradicional eacute a de Modelaccedilatildeo Manual que permite ao artista
controlo completo e fino do objeto a ser criado No que toca agrave criaccedilatildeo de cenaacuterios de elevadas
dimensotildees como montanhas cidades estradas e vegetaccedilatildeo a abordagem tradicional torna-se cada
vez menos viaacutevel A introduccedilatildeo de meacutetodos procedimentais na geraccedilatildeo destes conteuacutedos permite
produzir resultados de alta qualidade com alguma facilidade produzindo cenaacuterios numa fraccedilatildeo do
tempo e do custo correspondentes agrave respetiva produccedilatildeo por meio de modelaccedilatildeo manual
Apesar do grande impacto positivo que esta abordagem trouxe para a induacutestria de um ponto
de vista artiacutestico nem sempre o resultado eacute o mais desejado desta forma podendo necessitar
da introduccedilatildeo de pormenores e alteraccedilotildees finas agrave respetiva geometria para produzir um resultado
uacutenico e mais proacuteximo da visatildeo artiacutestica do criador Para tal tecircm sido desenvolvidas teacutecnicas
para uma interaccedilatildeo mais intuitiva com a modelaccedilatildeo procedimental tentado dar ao modelador um
melhor controlo sobre os meacutetodos automatizados que lhes estatildeo subjacentes natildeo possuindo ainda
o niacutevel de controlo fino que uma ferramenta de modelaccedilatildeo manual pode oferecer
1
Introduccedilatildeo
Figura 11 Captura de ecratilde do viacutedeo jogo Crysis 3 da Electronic Arts
11 Contexto
Esta dissertaccedilatildeo insere-se na aacuterea da computaccedilatildeo graacutefica mais especificamente na aacuterea da mo-
delaccedilatildeo tridimensional geraccedilatildeo procedimental de modelos 3D e interaccedilatildeo com os mesmos Estas
aacutereas intersectam-se em rumo a uma melhor interaccedilatildeo com recursos de geraccedilatildeo procedimental
num ambiente de modelaccedilatildeo manual
Esta dissertaccedilatildeo foi realizada na Faculdade de Engenharia da Universidade do Porto no Labo-
ratoacuterio de IampD de Computaccedilatildeo Graacutefica Interaccedilatildeo e Jogos
12 Motivaccedilatildeo e Problema
Os avanccedilos no desenvolvimento de hardware e software resultam numa necessidade de con-
teuacutedo tridimensional maior e mais detalhado criando uma maior carga nas equipas que os pro-
duzem Como mencionado previamente a utilizaccedilatildeo de modelaccedilatildeo procedimental para a criaccedilatildeo
raacutepida de ambientes tridimensionais eacute altamente apelativa para a induacutestria permitindo poupar
tempo e dinheiro comparativamente a uma abordagem manual
No entanto esta abordagem dificulta ao modelador a introduccedilatildeo de pormenores pois os meacute-
todos procedimentais satildeo definidos tipicamente por um conjunto de regras e paracircmetros de uma
forma natildeo intuitiva ou de controlo limitado A simples modificaccedilatildeo de um paracircmetro pode criar
uma reaccedilatildeo em cadeia de modificaccedilotildees que alteram por completo o modelo gerado Eacute assim ape-
lativo encontrar um meacutetodo que melhor aproveite as vantagens das duas abordagens permitindo
aos modeladores uma produccedilatildeo de conteuacutedo tridimensional mais raacutepida e controlada
2
Introduccedilatildeo
13 Objetivos
O objetivo principal deste trabalho eacute desenvolver uma soluccedilatildeo que melhor aproveite as vanta-
gens das duas principais abordagens agrave modelaccedilatildeo 3D para tal eacute possiacutevel identificar os seguintes
objetivos especiacuteficos
bull Investigar o estado da arte da aacuterea da modelaccedilatildeo procedimental e modelaccedilatildeo manual em
particular os avanccedilos realizados na interaccedilatildeo com os meacutetodos utilizados em modelaccedilatildeo pro-
cedimental
bull Estudar as metodologias possiacuteveis para abordar o problema
bull Desenvolver uma soluccedilatildeo utilizando uma abordagem possiacutevel com os recursos disponiacuteveis
bull Testar a soluccedilatildeo com utilizadores proficientes em modelaccedilatildeo de conteuacutedo 3D
14 Estrutura do documento
Esta dissertaccedilatildeo encontra-se dividida em 6 capiacutetulos anexos e referecircncias O capiacutetulo pre-
sente consiste numa descriccedilatildeo do problema da motivaccedilatildeo e dos objetivos propostos para a cor-
respondente realizaccedilatildeo No capiacutetulo 2 eacute realizado um levantamento do estado da arte nas aacutereas
da modelaccedilatildeo procedimental e modelaccedilatildeo manual em especial os avanccedilos realizados na interaccedilatildeo
com os meacutetodos utilizados em modelaccedilatildeo procedimental No capiacutetulo 3 satildeo discutidas as meto-
dologias estudadas para a melhor interaccedilatildeo entre as duas abordagens agrave modelaccedilatildeo sendo tambeacutem
apresentada com maior detalhe a metodologia a ser utilizada
No capiacutetulo 4 satildeo descritos alguns detalhes de implementaccedilatildeo da soluccedilatildeo desenvolvida base-
ada na metodologia discutida no capiacutetulo 3
No capiacutetulo 5 eacute apresentada a metodologia de teste utilizada para avaliar a soluccedilatildeo desenvol-
vida sendo tambeacutem apresentados os resultados obtidos
No capiacutetulo 6 o final da dissertaccedilatildeo satildeo resumidas algumas constataccedilotildees e conclusotildees rea-
lizadas sobre esta dissertaccedilatildeo Eacute efetuada tambeacutem uma listagem de alguns pontos para potencial
trabalho futuro
3
Introduccedilatildeo
4
Capiacutetulo 2
Estado da Arte e TrabalhosRelacionados
Neste capiacutetulo seraacute realizada uma revisatildeo bibliograacutefica que visa apresentar todos os avanccedilos
realizados nas aacutereas da interaccedilatildeo com os meacutetodos de geraccedilatildeo procedimental Seratildeo apresentados
os tipos de conteuacutedo passiacuteveis de serem produzidos por meio destes meacutetodos bem como as teacutec-
nicas utilizadas para a respetiva interaccedilatildeo e geraccedilatildeo Iratildeo tambeacutem ser apresentadas as abordagens
existentes para uma modelaccedilatildeo manual e as ferramentas existentes no mercado
21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundosvirtuais
O paradigma de interaccedilatildeo com meacutetodos de geraccedilatildeo procedimental eacute tradicionalmente funci-
onal Cada procedimento pode ser considerado uma caixa negra de operaccedilotildees que dependendo
de certos valores de entrada produz um ou mais resultados A interaccedilatildeo com estes nem sempre
eacute a mais intuitiva pois para atingir o resultado desejado envolve em repetidas tentativa e erro por
parte do utilizador No entanto em anos recentes tem existido um avanccedilo consideraacutevel nesta aacuterea
tentado conceder ao utilizador maior controlo sobre os meacutetodos de geraccedilatildeo procedimental com
abordagens como Sketch-based editores visuais e Modelaccedilatildeo Procedimental Invertida
211 Teacutecnicas Sketch-based
Esta abordagem tenta aproximar o tipo de interaccedilatildeo com que os principais utilizadores de
meacutetodos de Modelaccedilatildeo Procedimental estatildeo familiarizados Noccedilotildees como Brushes e Sketches satildeo
alguns dos conceitos mais populares entre designers profissionais
5
Estado da Arte e Trabalhos Relacionados
2111 Terrenos
De Carpentier et al [dCB09] propuseram um meacutetodo de ediccedilatildeo de terrenos no qual eacute dada ao
utilizador a possibilidade de alterar o heightfield atraveacutes de procedural brushes tentando combinar
a interaccedilatildeo manual localizada com a modificaccedilatildeo da parametrizaccedilatildeo por completo de heightfields
Esta abordagem eacute capaz de produzir alteraccedilotildees a tempo real graccedilas agrave respetiva implementaccedilatildeo
com shaders
Smelik et al [STdKB10] seguindo a respetiva proposta de modelaccedilatildeo de mundos virtuais
[STdKB08] propotildeem a utilizaccedilatildeo da abordagem Procedural sketching e demonstram-na num
protoacutetipo intitulado de SketchaWorld Esta abordagem eacute dividida em dois principais modos de
interaccedilatildeo (Figura 21) Landscape Mode e Feature Mode
Figura 21 Procedural sketching of virtual worlds por Smelik et al [STdKB10]
No primeiro o utilizador interage com uma vista top-down do terreno divido em grelha e eacute
capaz de definir a informaccedilatildeo geoloacutegica de cada ceacutelula atraveacutes do uso de Brushes Em Feature
Mode o utilizador manipula pontos de controlo correspondendo a vetores ou poliacutegonos que deli-
mitam a localizaccedilatildeo de cidades rios e vegetaccedilatildeo A ferramenta fornece feedback da construccedilatildeo do
terreno a um ritmo consideraacutevel para uma interaccedilatildeo fluida Esta tambeacutem dispotildee de funcionalida-
des como undo e redo para uma melhorar a interaccedilatildeo entre o utilizador e a ferramenta permitindo
assim a introduccedilatildeo de alteraccedilotildees e caso estas natildeo sejam desejadas pelo utilizador estas podem
ser desfeitas rapidamente Gain et al [GMSe09] propotildeem uma soluccedilatildeo que permite ao utilizador
esboccedilar as silhuetas e limites de corpos montanhosos a serem gerados
6
Estado da Arte e Trabalhos Relacionados
2112 Estradas
Num esforccedilo de melhorar a interaccedilatildeo com path layouts Singh et al [SM08] desenvolveram a
ferramenta Drive que permite a conceptualizaccedilatildeo de redes rodoviaacuterias tridimensionais por meio
de esboccedilos que satildeo posteriormente aproximados a clotoacuteides (Curvas em que o raio varia line-
armente) Com esta abordagem eacute possiacutevel produzir itineraacuterios em que as transiccedilotildees entre raios
de curvatura satildeo lineares tornando-os assim adequados para a conduccedilatildeo A ferramenta tambeacutem
introduz Terrain sensitive sketching que por meios automaacuteticos coloca sinalizaccedilatildeo no percurso e
vegetaccedilatildeo nas redondezas
2113 Vegetaccedilatildeo
Figura 22 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et al[IOI06b IOI06a]
O trabalho de Ijiri et al [IOI06b IOI06a] apresenta uma teacutecnica que atraveacutes de traccedilados defi-
nidos pelo utilizador (Figura 22) permite a manipulaccedilatildeo da direccedilatildeo de crescimento de vegetaccedilatildeo
produzida por L-Systems uma abordagem jaacute muito estudada para a criaccedilatildeo de vegetaccedilatildeo pro-
posta por Lindenmayer [Lin68] como um tipo de gramaacutetica formal capaz de representar padrotildees
e geometria fractal existente na vegetaccedilatildeo Em 1988 foi proposto por Prusinkiewicz [PLH88] a
utilizaccedilatildeo de L-systems para a modelaccedilatildeo de vegetaccedilatildeo Ao longo das ultimas deacutecadas tecircm sido
realizados avanccedilos consideraacuteveis na produccedilatildeo de vegetaccedilatildeo realiacutestica [WP95] e a respetiva inte-
raccedilatildeo com o seu meio ambiente [MP96 Pru00] tentado assim produzir vegetaccedilatildeo que melhor
simule o comportamento fiacutesico e bioloacutegico de vegetaccedilatildeo real
Mais recentemente o trabalho de Palubicky et al [PHL+09] foi expandido e transportado
para uma aplicaccedilatildeo para dispositivos iPad em que o modelador tem um controlo fino sobre o
crescimento de uma aacutervore Utilizando o conceito de tree self-organization Longay et al criaram
7
Estado da Arte e Trabalhos Relacionados
a ferramenta TreeSketch 23 que estimula a competiccedilatildeo entre os ramos de uma aacutervore por espaccedilo
e luz dentro dos paracircmetros e inputs visuais dados pelo utilizador [LRBP12]
Figura 23 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch
212 Editores Visuais
Numa tentativa de melhorar a interaccedilatildeo com modelaccedilatildeo procedimental baseada em gramaacuteticas
[WWSR03 MWH+06] Lipp et al propuseram uma abordagem que permite a manipulaccedilatildeo direta
do resultado produzido por uma gramaacutetica O utilizador pode manipular diretamente no objeto as
respetivas dimensotildees e configuraccedilotildees [LWW08]
Mais recentemente Krecklau et al [KK12] introduziram uma abordagem que permite a ge-
raccedilatildeo de cenas a partir de primitivas de alto niacutevel e a correspondente manipulaccedilatildeo por interaccedilatildeo
direta na cena consequentemente permitindo a utilizadores menos experientes a utilizaccedilatildeo de
gramaacuteticas procedimentais complexas sem a necessidade de interaccedilatildeo textual com as mesmas
2121 Visual Node Based
Editores Visual Node Based satildeo utilizados em muitas aplicaccedilotildees comercias como meio de
dar ao utilizador feedback visual do fluxo de informaccedilatildeo Encontra-se em editores de shaders
[Hol15 Aut15b] editores de animaccedilotildees [Tec15] e em editores de texturas [Cod15] A vasta uti-
lizaccedilatildeo da teacutecnica na aacuterea de produccedilatildeo de conteuacutedo 3D por utilizadores com pouca experiecircncia
de programaccedilatildeo levou a que investigadores a utilizassem para a especificaccedilatildeo de gramaacuteticas de
produccedilatildeo
Nesse contexto Patow [Pat12] desenvolveu uma soluccedilatildeo para a construccedilatildeo e manipulaccedilatildeo de
gramaacuteticas por meio de um editor visual onde noacutes que representam operaccedilotildees geomeacutetricas dos
correspondentes antecessores transmitem o resultado aos noacutes sucessores Na mesma publica-
ccedilatildeo Patow realccedila a importacircncia que esta abordagem acarreta para a modelaccedilatildeo procedimental de
edifiacutecios e admite que existe ainda muito potencial por explorar
8
Estado da Arte e Trabalhos Relacionados
Mais recentemente o trabalho de Silva et al [SMBC13] apresenta uma metodologia de edi-
ccedilatildeo em que grafos podem ser encapsulados em noacutes designados Component capazes de representar
construccedilotildees complexas Os noacutes podem ser facilmente introduzidos noutros grafos e editados por
meio de filtros de fluxo colocados nas arestas ou por restriccedilotildees que auxiliam a especificar a utili-
zaccedilatildeo dos noacutes (Figura 24)
Figura 24 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13]
213 Modelaccedilatildeo Procedimental Invertida
Inverse PM eacute uma teacutecnica em que um dado modelo de entrada eacute aproximado a uma represen-
taccedilatildeo procedimental
Aliaga et al [ARB07] apresenta a reconstruccedilatildeo de edifiacutecios por meio de fotografias Nesta
abordagem o utilizador define os limites das fachadas do edifiacutecio criando uma representaccedilatildeo
minimalista De seguida eacute automaticamente aproximada uma gramaacutetica que melhor representa
o edifiacutecio em questatildeo Com os trabalhos de Šrsquotava et al [ŠBM+10] na parametrizaccedilatildeo de arte
vetorial 2D e de Mitra et al [MGP06] em encontrar simetrias em objetos tridimensionais Bokeloh
et al [BWS10] aplica estes conceitos para a descoberta de simetrias nos objetos e a consequente
aproximaccedilatildeo de gramaacuteticas que definam o objeto em questatildeo
As abordagens atuais focam-se em Modelaccedilatildeo invertida de ambientes urbanos no entanto
Vanegas et al [VGDA+12] demonstram uma metodologia de aproximaccedilatildeo de gramaacuteticas capazes
de representar para aleacutem de edifiacutecios sistemas complexos de vegetaccedilatildeo aproximados a um objeto
jaacute existente
9
Estado da Arte e Trabalhos Relacionados
22 Modelaccedilatildeo 3D Manual
Para a produccedilatildeo de objetos tridimensionais os modeladores utilizam ferramentas dedicadas
que lhes datildeo um controlo total sobre o modelo a ser construiacutedo Estes variam em metaacuteforas de
interface e em puacuteblico alvo Nesta secccedilatildeo vatildeo ser abordadas as teacutecnicas de modelaccedilatildeo atualmente
utilizadas por estas ferramentas e seratildeo listadas as ferramentas existentes no mercado e as respeti-
vas funcionalidades principais
221 Teacutecnicas de Modelaccedilatildeo Manual
2211 Polygon Modelling
Polygon Modelling eacute uma abordagem para a representaccedilatildeo de superfiacutecies tridimensionais utili-
zando poliacutegonos estes satildeo representados por veacutertices e arestas e em grupos formam uma Polygon
Mesh que pode ser armazenada de muacuteltiplas formas [TM06 Bau72 Smi06] Eacute possiacutevel criar ma-
lhas veacutertice a veacutertice manualmente No entanto eacute comum a respetiva manipulaccedilatildeo em software
graacutefico concedendo aos modeladores ferramentas interativas como Blender Autodesk Maya e 3D
Studio Max
Figura 25 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14]
Uma das abordagens mais comuns eacute denominada Box Modelling na qual uma forma geomeacute-
trica considerada uma primitiva (ie cubo esfera cilindro) eacute esculpida iterativamente por pas-
sos de subdivisatildeo do objeto e subsequente manipulaccedilatildeo da geometria ateacute se obter o objeto final
[Jon02 sub14] A figura 25 demonstra da teacutecnica Box Modelling para a modelaccedilatildeo de uma face
Esta abordagem pode ser considerada uma abordagem Subtrativa pois eacute atraveacutes da reduccedilatildeo de um
objeto base que eacute obtido o objeto desejado
10
Estado da Arte e Trabalhos Relacionados
O polygon modelling caracteriza-se pelo controlo direto sobre a colocaccedilatildeo de cada veacutertice de
uma superfiacutecie permitindo dessa forma um controlo fino e preciso sobre o resultado a produzir
2212 NURBS
NURBS ou Non-uniform rational B-spline eacute uma generalizaccedilatildeo de B-Splines e Curvas de Beacute-
zier [KR79 Cab92] um modelo matemaacutetico usado para representar curvas e superfiacutecies com
grande precisatildeo e flexibilidade (Figura 26) Eacute principalmente utilizado em aacutereas da computaccedilatildeo
graacutefica (CAD CAM CAE) onde a precisatildeo dos modelos obtidos eacute muito importante Inicialmente
estudada por Matemaacuteticos como I J Schoenberg [Cob84] foi aplicada em sistemas CAD para a
modelaccedilatildeo na induacutestria Automoacutevel [Beacute83 Beacutez81 Bez68]
Figura 26 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modeloNURBS
2213 Digital Sculpting
Digital Sculpting eacute a adaptaccedilatildeo de teacutecnicas utilizadas para moldar materiais como o barro agrave
modelaccedilatildeo 3D Estas ferramentas permitem ao modelador empurrar puxar polir vincare
adicionar ou remover volume Perry et al [PF01] introduziram Kizamu um dos primeiros passos
na aacuterea do Digital Sculpting Os modelos satildeo representados no que eacute chamado de Adaptively Sam-
pled Distance Fields (ADF) [FPRJ00] que permite representar dados volumeacutetricos que tornam o
processo de Digital Sculpting possiacutevel
222 Ferramentas de Modelaccedilatildeo 3D
2221 Blender
O Blender [ble15a] eacute uma ferramenta profissional de modelaccedilatildeo de coacutedigo aberto desen-
volvida pela Blender Foundation Suporta uma grande variedade de primitivas geomeacutetricas in-
11
Estado da Arte e Trabalhos Relacionados
Figura 27 Interface da ferramenta Blender
cluiacutendo Polygon Meshes curvas de Bezier superfiacutecies NURBS Metaballs e Digital Sculpting
Esta destaca-se por ser gratuita e pela facilidade de criar extensotildees [ble15b] usando a API Python
existente [ble15c] que permite adicionar novas funcionalidades agrave ferramenta
2222 Autodesk Maya
Figura 28 Interface da ferramenta Autodesk Maya
O Autodesk Maya [Aut15b] eacute uma ferramenta de produccedilatildeo de conteuacutedo 3D utilizada nas induacutes-
trias do cinema televisatildeo videojogos e arquitetura Eacute de coacutedigo fechado e a respetiva utilizaccedilatildeo
requer que o utilizador possua uma licenccedila Tal como o Blender o Maya daacute aos modeladores
ferramentas para estes criarem objetos de uma forma interativa 28 Apesar de ser uma ferramenta
versaacutetil e capaz de satisfazer as necessidades de todas induacutestrias acima referidas o Autodesk
Maya tende a ser mais utilizado pela induacutestria do Cinema devido agrave vasta customizaccedilatildeo possiacutevel de
aspetos importantes para esta induacutestria como Animaccedilatildeo e VFX [Aut15c]
12
Estado da Arte e Trabalhos Relacionados
2223 Autodesk 3D Studio Max
O 3D Studio Max [Aut15a] eacute outra ferramenta da Autodesk em muitos aspetos semelhante
ao Maya No entanto o 3DS Max estaacute apenas disponiacutevel para maacutequinas de sistema operativo
Windows e sempre foi mais utilizado pela induacutestria dos videojogos para a criaccedilatildeo de modelos 3D
Tal como o Autodesk Maya este dispotildee de poderosos motores de renderizaccedilatildeo Ray Tracing
2224 Zbrush
O Zbrush [Pix15] eacute uma ferramenta de modelaccedilatildeo 3D baseada nos conceitos de Digital Mo-
delling Daacute ao artista muacuteltiplas Brushes que permitem manipular o objeto a ser definido com
paradigmas transportados de outras aacutereas artiacutesticas Pode tornar mais acessiacutevel para um utilizador
pouco experiente com alguns paradigmas da Computaccedilatildeo Graacutefica a modelaccedilatildeo de objetos com
consideraacutevel detalhe e liberdade artiacutestica [Spe11]
23 Sumaacuterio
Apoacutes o levantamento do estado da arte eacute possiacutevel constatar que as ferramentas de modelaccedilatildeo
manual satildeo a escolha de eleiccedilatildeo para contextos em que o modelador deseja o maior niacutevel controlo
possiacutevel sobre o objeto a ser produzido No entanto considerando ferramentas de modelaccedilatildeo
procedimental tem existido um esforccedilo por parte desta comunidade para tornar a correspondente
experiecircncia de utilizaccedilatildeo mais acessiacutevel a utilizadores pouco familiarizados com o funcionamento
do mesmo Por enquanto a utilizaccedilatildeo deste tipo de ferramentas ainda requer que o conteuacutedo
seja criado em ferramentas dedicadas completamente separadas das ferramentas tradicionais (ie
Maya Blender) essenciais para o trabalho artiacutestico levando a quebras no fluxo de trabalho
13
Estado da Arte e Trabalhos Relacionados
14
Capiacutetulo 3
Metodologia
Com os desenvolvimentos atuais na aacuterea de modelaccedilatildeo procedimental apresentados no capiacute-
tulo 2 eacute possiacutevel verificar que as soluccedilotildees de MP existentes permitem produzir variados tipos de
conteuacutedo tais como terrenos vegetaccedilatildeo edifiacutecios estradas e cidades por outro lado as respeti-
vas integraccedilotildees em ambientes de modelaccedilatildeo manual satildeo algo limitadas ou apenas disponiacuteveis em
ferramentas externas especializadas num uacutenico tipo de conteuacutedo
Da mesma forma como verificado em 21 foram efetuadas vaacuterias tentativas pela comunidade
envolvida em geraccedilatildeo procedimental no sentido a melhorar a interaccedilatildeo com ferramentas dedica-
das agrave geraccedilatildeo procedimental no entanto existe ainda uma grande margem para avanccedilo de uma
integraccedilatildeo geneacuterica destes processos numa ferramenta de modelaccedilatildeo manual Devido agrave falta de
soluccedilotildees que se integrem de forma transparente e acessiacutevel em ambientes de modelaccedilatildeo manual
pretende-se apresentar uma soluccedilatildeo com o objetivo de interligar as duas abordagens neste capiacute-
tulo Inicialmente seraacute apresentada em pormenor a arquitetura da soluccedilatildeo de seguida o protocolo
de comunicaccedilatildeo entre os dois ambientes de modelaccedilatildeo e finalmente seraacute proposto um meacutetodo de
trabalho no qual seraacute descrita a interaccedilatildeo ideal entre o modelador e a soluccedilatildeo proposta
31 Meacutetodo de Trabalho
Numa interaccedilatildeo ideal o modelador teria controlo absoluto sobre os meacutetodos de geraccedilatildeo proce-
dimental e seria possiacutevel modelar procedimentalmente sobre alteraccedilotildees manuais realizadas sobre
o objeto No entanto nem sempre eacute desejado esse niacutevel de controlo e interligaccedilatildeo entre as aborda-
gens Imaginando a modelaccedilatildeo de um edifiacutecio este eacute construiacutedo segundo meacutetodos procedimentais
e recebe como entrada um poliacutegono que delimita a fundaccedilatildeo assim como paracircmetros numeacutericos e
booleanos que definem a geometria resultante Depois de modelado procedimentalmente o objeto
eacute adicionado ao ambiente de modelaccedilatildeo manual onde o modelador pode realizar alteraccedilotildees em
detalhes na geometria ou mesmo alteraccedilotildees profundas na geometria do mesmo
15
Metodologia
Considerando uma situaccedilatildeo em que o modelador realizou alteraccedilotildees profundas na geometria
produzida como por exemplo a reparticcedilatildeo de uma das fachadas do edifiacutecio em trecircs fachadas
Assim que realizadas estas alteraccedilotildees o utilizador pretende alterar a altura do edifiacutecio alterando o
paracircmetro correspondente e requisitando uma atualizaccedilatildeo Para ser possiacutevel manter as alteraccedilotildees
realizadas manualmente e em simultacircneo respeitar as regras definidas pela geraccedilatildeo procedimen-
tal seria necessaacuterio converter estas alteraccedilotildees em regras possiacuteveis de definir no escopo do ambiente
de geraccedilatildeo procedimental
De qualquer das formas as alteraccedilotildees realizadas no ponto anterior podem simplesmente natildeo
fazer sentido apoacutes a aplicaccedilatildeo sobre o objeto que foi reproduzido seguindo as regras definias
por um procedimento Devido a esta limitaccedilatildeo eacute assumido que assim que o utilizador requisita
uma nova execuccedilatildeo de um procedimento o qual natildeo tem problemas em descartar as alteraccedilotildees
executadas manualmente sobre o objeto em questatildeo
Tendo em consideraccedilatildeo esta limitaccedilatildeo eacute possiacutevel estruturar um fluxo de trabalho que melhor
explore as vantagens e limitaccedilotildees de ambas as abordagens de geraccedilatildeo de conteuacutedo tridimensional
O utilizador tem uma panoacuteplia de conteuacutedos procedimentais ao seu dispor que podem ser definidas
via paracircmetros numeacutericos e geomeacutetricos O conteuacutedo eacute adicionado ao ambiente de modelaccedilatildeo ma-
nual e os paracircmetros podem ainda ser editados alterados ao custo de que as modificaccedilotildees manuais
realizadas sobre o objeto sejam descartadas
32 Metodologias de Interaccedilatildeo com o Utilizador
Em relaccedilatildeo agrave interaccedilatildeo com o utilizador foram estudadas trecircs abordagens para a interaccedilatildeo com
meacutetodos de geraccedilatildeo procedimental em ambiente de modelaccedilatildeo manual
321 Modificadores
O conceito de modificadores eacute jaacute utilizado em ambientes de modelaccedilatildeo manual eg no Blen-
der [Bap14 Ble15e] onde satildeo utilizados para realizar operaccedilotildees sobre objetos na cena sem destruir
a geometria subjacente apenas modificam a forma como os objetos satildeo percecionados pelo motor
de renderizaccedilatildeo Esta abordagem eacute uacutetil em situaccedilotildees onde o procedimento a ser executado en-
volve modificaccedilotildees sobre uma geometria base como tal permitindo realizar muacuteltiplas alteraccedilotildees
sobre um objeto podendo estas ser facilmente canceladas recuperando o objeto original No en-
tanto nem todos os recursos de geraccedilatildeo procedimental incidem sobre modificaccedilatildeo de geometria
Os meios de geraccedilatildeo procedimental em muitas situaccedilotildees produzem objetos e cenaacuterios uacutenicos e
independentes de qualquer geometria de entrada
322 Grafos
A abordagem de interaccedilatildeo via grafos eacute atualmente utilizada num ambiente de modelaccedilatildeo ma-
nual para a ediccedilatildeo de materiais [Ble15d] Tambeacutem chamada de Flow-Based Programming esta
16
Metodologia
abordagem permite apresentar ao utilizador os procedimentos como uma caixa negra com pos-
siacuteveis entradas e saiacutedas representadas como ligaccedilotildees de fluxo A correspondente utilizaccedilatildeo na
interaccedilatildeo com geraccedilatildeo procedimental pode permitir o encadeamento de muacuteltiplos procedimentos
No entanto a abordagem pode ser mais trabalhosa para o utilizador introduzindo um niacutevel de
interaccedilatildeo adicional para cada objeto introduzido na cena
323 Funccedilotildees
Esta abordagem disponibiliza ao utilizador cada recurso de geraccedilatildeo procedimental como uma
funccedilatildeo disponiacutevel a qualquer momento na interface da ferramenta de modelaccedilatildeo manual Aquando
da respetiva invocaccedilatildeo satildeo requisitados aos utilizadores os paracircmetros necessaacuterios agrave execuccedilatildeo
A abordagem em causa eacute potencialmente a mais faacutecil de adotar por parte dos utilizadores de
ferramentas de modelaccedilatildeo manual Devido agrave simplicidade na interaccedilatildeo assim como a reduzida
necessidade de tempo e recursos para a implementaccedilatildeo esta foi a abordagem de interaccedilatildeo utilizada
na soluccedilatildeo desenvolvida
33 Arquitetura da Soluccedilatildeo
Para abordar este problema eacute proposta a utilizaccedilatildeo de duas aplicaccedilotildees jaacute presentes no mer-
cado Uma aplicaccedilatildeo dedicada agrave modelaccedilatildeo procedimental e uma aplicaccedilatildeo de modelaccedilatildeo manual
Foi escolhida esta abordagem na medida em que eacute possiacutevel utilizar duas aplicaccedilotildees jaacute existentes
sendo possiacutevel dessa forma aproveitar os pontos fortes de cada soluccedilatildeo com o intuito de otimi-
zar o processo de criaccedilatildeo de novos cenaacuterios e conteuacutedo tridimensional Esta abordagem pode ser
representada como uma soluccedilatildeo estruturada numa arquitetura Cliente-Servidor em que a aplica-
ccedilatildeo de geraccedilatildeo procedimental eacute capaz de fornecer serviccedilos de geraccedilatildeo de conteuacutedo a um ou mais
clientes de modelaccedilatildeo Esta abordagem interliga as duas aplicaccedilotildees atraveacutes de um protocolo de
comunicaccedilatildeo Este permite ao utilizador da ferramenta de modelaccedilatildeo manual requisitar a produ-
ccedilatildeo de conteuacutedo seguindo os valores impostos pelo utilizador nos paracircmetros do procedimento
requisitado O protocolo eacute descrito em maior detalhe na secccedilatildeo 34
331 Vantagens
Faacutecil integraccedilatildeo em diferentes plataformas Devido agrave arquitetura ser baseada na comunicaccedilatildeo
entre duas aplicaccedilotildees por um protocolo de comunicaccedilatildeo geneacuterico eacute com alguma facili-
dade que se realiza a interligaccedilatildeo com diferentes soluccedilotildees de geraccedilatildeo procedimental ou de
modelaccedilatildeo manual Sendo assim possiacutevel a expansatildeo para novos ambientes de modelaccedilatildeo
manual ou mesmo introduzir novas soluccedilotildees de geraccedilatildeo procedimental
Escalabilidade A arquitetura proposta poderaacute permitir que esta seja implementada de modo a que
um servidor central de geraccedilatildeo procedimental sirva por exemplo num ambiente empresa-
rial como um repositoacuterio de recursos de geraccedilatildeo de conteuacutedos desta forma permitindo
17
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
ii
Abstract
The domain of tridimensional modelling contains two major approaches manual modellingand procedural modelling In the first the user models the object interacting directly with theresult through virtual tools which in some cases work similarly to those utilized by modelers inreal objects thus allowing for direct and rigorous control over what is being produced In pro-cedural modelling the objects are created automatically through several user-defined conditionsby textual rules in a dedicated language or data-flow graphs allowing for quick and large-scaleproduction of 3D content On the other hand interaction with these methods isnrsquot always the mostintuitive In cases where itrsquos necessary to introduce particular details the procedural generationprocess becomes too taxing For those situations manual modelling would be the most adequate toperform corrections or small adjustments over details So it is important to find a medium whichpermits combining the advantages of manual modelling with those of procedural modelling sothat potential users may create tridimensional models with greater efficiency
This dissertation has as its objective the evaluation of possible integrations of the two mainapproaches of 3D modelling and the impact of the corresponding usage To that purpose a solu-tion that aims to integrate the procedural modelling tool Construct in the manual modelling toolBlender was implemented and tested
iii
iv
Agradecimentos
Comeccedilo por agradecer aos meus orientadores o Professor Rui Pedro Amaral Rodrigues PedroAmorim Brandatildeo da Silva e o Joatildeo Tiago Neto Jacob pelo seu trabalho conselhos e apoio semos quais esta dissertaccedilatildeo natildeo seria concluiacuteda Agradeccedilo tambeacutem ao Professor Pedro Cardoso daFaculdade de Belas Artes da Universidade do Porto pelo apoio dado no decorrer desta dissertaccedilatildeo
Agradeccedilo a todos os membros da Faculdade de Engenharia da Universidade do Porto e doDepartamento de Engenharia Informaacutetica e Computaccedilatildeo por me motivarem e ensinarem durantedestes anos
Agradeccedilo em particular ao meu colega e amigo Joatildeo Almeida pelo apoio que me deu na revisatildeodeste documento Finalmente gostaria de agradecer aos meus paiacutes irmatildeo amigos colegas decurso e familiares pelo apoio que me deram ao longo do meu percurso acadeacutemico
Rui Miguel Barros Gonccedilalves
v
vi
ldquoWhat we usually consider as impossible are simply engineering problemstherersquos no law of physics preventing themrdquo
Dr Michio Kaku
vii
viii
Conteuacutedo
1 Introduccedilatildeo 111 Contexto 212 Motivaccedilatildeo e Problema 213 Objetivos 314 Estrutura do documento 3
2 Estado da Arte e Trabalhos Relacionados 521 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais 5
211 Teacutecnicas Sketch-based 5212 Editores Visuais 8213 Modelaccedilatildeo Procedimental Invertida 9
22 Modelaccedilatildeo 3D Manual 10221 Teacutecnicas de Modelaccedilatildeo Manual 10222 Ferramentas de Modelaccedilatildeo 3D 11
23 Sumaacuterio 13
3 Metodologia 1531 Meacutetodo de Trabalho 1532 Metodologias de Interaccedilatildeo com o Utilizador 16
321 Modificadores 16322 Grafos 16323 Funccedilotildees 17
33 Arquitetura da Soluccedilatildeo 17331 Vantagens 17332 Desvantagens 18
34 Protocolo de Comunicaccedilatildeo 19
4 Implementaccedilatildeo 2141 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual 2142 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental 2243 Comunicaccedilatildeo 2344 Construccedilatildeo da Interface 2545 Execuccedilatildeo 26
5 Teste da Soluccedilatildeo e Resultados Obtidos 3151 Metodologia de Teste 3152 Resultados 36
ix
CONTEUacuteDO
6 Conclusotildees e Trabalho Futuro 3961 Trabalho Futuro 39
Referecircncias 41
A Mensagens JSON 47A1 JSON de Pedido de Abertura do Projeto Urban 47A2 JSON de Informaccedilatildeo do Projeto Urban 47A3 Exemplo de Pedido para Gerar um Grafo 49A4 Exemplo de Resposta de Erro do Servidor 50
B Principais Grafos do Projeto Urban 51
C Cenaacuterios Resultantes dos Testes com Utilizadores 55
x
Lista de Figuras
11 Captura de ecratilde do viacutedeo jogo Crysis 3 da Electronic Arts 2
21 Procedural sketching of virtual worlds por Smelik et al [STdKB10] 622 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et
al [IOI06b IOI06a] 723 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch 824 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13] 925 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14] 1026 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modelo
NURBS 1127 Interface da ferramenta Blender 1228 Interface da ferramenta Autodesk Maya 12
31 Diagrama do sistema proposto 18
41 Editor Construct em execuccedilatildeo 2242 Grafo exemplo e respetiva geometria produzida 2343 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct 2444 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct
a abrir 2445 Barra de ferramentas depois de aberto um projeto 2646 JSON enviado ao servidor para a execuccedilatildeo de um grafo 2647 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base 2748 Edifiacutecio depois de adicionado agrave cena 2749 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores 28410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular 28411 Custom Properties de um objeto produzido por um grafo Cube 29
51 Cenaacuterio requisitado aos utilizadores 3152 Exemplos de resultados possiacuteveis do grafo Building 3253 Exemplo de resultado do grafo Window 3354 Exemplo de resultado do grafo Door 3355 Exemplo de resultado do grafo CityStreets 3456 Cursor 3D do Blender 36
B1 Grafo Building como visto no editor Construct 51B2 Grafo CityStreets como visto no editor Construct 52B3 Grafo Window como visto no editor Construct 52B4 Grafo Door como visto no editor Construct 53
xi
LISTA DE FIGURAS
B5 Grafo DetailedRoof como visto no editor Construct 53
C1 Cenaacuterio criado pelo utilizador 3 55C2 Cenaacuterio criado pelo utilizador 4 56
xii
Lista de Tabelas
41 Estatiacutesticas dos principais foacuteruns 2242 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender 25
51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e otempo utilizado para construir o cenaacuterio utilizando o add-on desenvolvido 37
52 Resultados da avaliaccedilatildeo de usabilidade do sistema 37
xiii
LISTA DE TABELAS
xiv
Abreviaturas e Siacutembolos
API Application Programming InterfaceCAD Computer-Aided DesignCASE Computer-Aided Software EngineeringCGI Computer-Generated ImageJSON JavaScript Object NotationMP Modelaccedilatildeo ProcedimentalGP Geraccedilatildeo ProcedimentalMM Modelaccedilatildeo ManualSUS System Usability ScaleTCP Transmission Control Protocol
xv
Capiacutetulo 1
Introduccedilatildeo
A criaccedilatildeo de ambientes virtuais eacute um toacutepico muito relevante em computaccedilatildeo graacutefica e reali-
dade virtual tendo aplicaccedilotildees na induacutestria do entretenimento para a produccedilatildeo filmes e videojogos
entre outros Na induacutestria do cinema estes ambientes virtuais satildeo utilizados para criar imagens
impossiacuteveis de reproduzir atraveacutes de meios praacuteticos Na induacutestria dos videojogos cada vez mais
encontramos jogos em ambientes de maior dimensatildeo e com um elevado niacutevel de detalhe (Figura
11)
Em modelaccedilatildeo a abordagem tradicional eacute a de Modelaccedilatildeo Manual que permite ao artista
controlo completo e fino do objeto a ser criado No que toca agrave criaccedilatildeo de cenaacuterios de elevadas
dimensotildees como montanhas cidades estradas e vegetaccedilatildeo a abordagem tradicional torna-se cada
vez menos viaacutevel A introduccedilatildeo de meacutetodos procedimentais na geraccedilatildeo destes conteuacutedos permite
produzir resultados de alta qualidade com alguma facilidade produzindo cenaacuterios numa fraccedilatildeo do
tempo e do custo correspondentes agrave respetiva produccedilatildeo por meio de modelaccedilatildeo manual
Apesar do grande impacto positivo que esta abordagem trouxe para a induacutestria de um ponto
de vista artiacutestico nem sempre o resultado eacute o mais desejado desta forma podendo necessitar
da introduccedilatildeo de pormenores e alteraccedilotildees finas agrave respetiva geometria para produzir um resultado
uacutenico e mais proacuteximo da visatildeo artiacutestica do criador Para tal tecircm sido desenvolvidas teacutecnicas
para uma interaccedilatildeo mais intuitiva com a modelaccedilatildeo procedimental tentado dar ao modelador um
melhor controlo sobre os meacutetodos automatizados que lhes estatildeo subjacentes natildeo possuindo ainda
o niacutevel de controlo fino que uma ferramenta de modelaccedilatildeo manual pode oferecer
1
Introduccedilatildeo
Figura 11 Captura de ecratilde do viacutedeo jogo Crysis 3 da Electronic Arts
11 Contexto
Esta dissertaccedilatildeo insere-se na aacuterea da computaccedilatildeo graacutefica mais especificamente na aacuterea da mo-
delaccedilatildeo tridimensional geraccedilatildeo procedimental de modelos 3D e interaccedilatildeo com os mesmos Estas
aacutereas intersectam-se em rumo a uma melhor interaccedilatildeo com recursos de geraccedilatildeo procedimental
num ambiente de modelaccedilatildeo manual
Esta dissertaccedilatildeo foi realizada na Faculdade de Engenharia da Universidade do Porto no Labo-
ratoacuterio de IampD de Computaccedilatildeo Graacutefica Interaccedilatildeo e Jogos
12 Motivaccedilatildeo e Problema
Os avanccedilos no desenvolvimento de hardware e software resultam numa necessidade de con-
teuacutedo tridimensional maior e mais detalhado criando uma maior carga nas equipas que os pro-
duzem Como mencionado previamente a utilizaccedilatildeo de modelaccedilatildeo procedimental para a criaccedilatildeo
raacutepida de ambientes tridimensionais eacute altamente apelativa para a induacutestria permitindo poupar
tempo e dinheiro comparativamente a uma abordagem manual
No entanto esta abordagem dificulta ao modelador a introduccedilatildeo de pormenores pois os meacute-
todos procedimentais satildeo definidos tipicamente por um conjunto de regras e paracircmetros de uma
forma natildeo intuitiva ou de controlo limitado A simples modificaccedilatildeo de um paracircmetro pode criar
uma reaccedilatildeo em cadeia de modificaccedilotildees que alteram por completo o modelo gerado Eacute assim ape-
lativo encontrar um meacutetodo que melhor aproveite as vantagens das duas abordagens permitindo
aos modeladores uma produccedilatildeo de conteuacutedo tridimensional mais raacutepida e controlada
2
Introduccedilatildeo
13 Objetivos
O objetivo principal deste trabalho eacute desenvolver uma soluccedilatildeo que melhor aproveite as vanta-
gens das duas principais abordagens agrave modelaccedilatildeo 3D para tal eacute possiacutevel identificar os seguintes
objetivos especiacuteficos
bull Investigar o estado da arte da aacuterea da modelaccedilatildeo procedimental e modelaccedilatildeo manual em
particular os avanccedilos realizados na interaccedilatildeo com os meacutetodos utilizados em modelaccedilatildeo pro-
cedimental
bull Estudar as metodologias possiacuteveis para abordar o problema
bull Desenvolver uma soluccedilatildeo utilizando uma abordagem possiacutevel com os recursos disponiacuteveis
bull Testar a soluccedilatildeo com utilizadores proficientes em modelaccedilatildeo de conteuacutedo 3D
14 Estrutura do documento
Esta dissertaccedilatildeo encontra-se dividida em 6 capiacutetulos anexos e referecircncias O capiacutetulo pre-
sente consiste numa descriccedilatildeo do problema da motivaccedilatildeo e dos objetivos propostos para a cor-
respondente realizaccedilatildeo No capiacutetulo 2 eacute realizado um levantamento do estado da arte nas aacutereas
da modelaccedilatildeo procedimental e modelaccedilatildeo manual em especial os avanccedilos realizados na interaccedilatildeo
com os meacutetodos utilizados em modelaccedilatildeo procedimental No capiacutetulo 3 satildeo discutidas as meto-
dologias estudadas para a melhor interaccedilatildeo entre as duas abordagens agrave modelaccedilatildeo sendo tambeacutem
apresentada com maior detalhe a metodologia a ser utilizada
No capiacutetulo 4 satildeo descritos alguns detalhes de implementaccedilatildeo da soluccedilatildeo desenvolvida base-
ada na metodologia discutida no capiacutetulo 3
No capiacutetulo 5 eacute apresentada a metodologia de teste utilizada para avaliar a soluccedilatildeo desenvol-
vida sendo tambeacutem apresentados os resultados obtidos
No capiacutetulo 6 o final da dissertaccedilatildeo satildeo resumidas algumas constataccedilotildees e conclusotildees rea-
lizadas sobre esta dissertaccedilatildeo Eacute efetuada tambeacutem uma listagem de alguns pontos para potencial
trabalho futuro
3
Introduccedilatildeo
4
Capiacutetulo 2
Estado da Arte e TrabalhosRelacionados
Neste capiacutetulo seraacute realizada uma revisatildeo bibliograacutefica que visa apresentar todos os avanccedilos
realizados nas aacutereas da interaccedilatildeo com os meacutetodos de geraccedilatildeo procedimental Seratildeo apresentados
os tipos de conteuacutedo passiacuteveis de serem produzidos por meio destes meacutetodos bem como as teacutec-
nicas utilizadas para a respetiva interaccedilatildeo e geraccedilatildeo Iratildeo tambeacutem ser apresentadas as abordagens
existentes para uma modelaccedilatildeo manual e as ferramentas existentes no mercado
21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundosvirtuais
O paradigma de interaccedilatildeo com meacutetodos de geraccedilatildeo procedimental eacute tradicionalmente funci-
onal Cada procedimento pode ser considerado uma caixa negra de operaccedilotildees que dependendo
de certos valores de entrada produz um ou mais resultados A interaccedilatildeo com estes nem sempre
eacute a mais intuitiva pois para atingir o resultado desejado envolve em repetidas tentativa e erro por
parte do utilizador No entanto em anos recentes tem existido um avanccedilo consideraacutevel nesta aacuterea
tentado conceder ao utilizador maior controlo sobre os meacutetodos de geraccedilatildeo procedimental com
abordagens como Sketch-based editores visuais e Modelaccedilatildeo Procedimental Invertida
211 Teacutecnicas Sketch-based
Esta abordagem tenta aproximar o tipo de interaccedilatildeo com que os principais utilizadores de
meacutetodos de Modelaccedilatildeo Procedimental estatildeo familiarizados Noccedilotildees como Brushes e Sketches satildeo
alguns dos conceitos mais populares entre designers profissionais
5
Estado da Arte e Trabalhos Relacionados
2111 Terrenos
De Carpentier et al [dCB09] propuseram um meacutetodo de ediccedilatildeo de terrenos no qual eacute dada ao
utilizador a possibilidade de alterar o heightfield atraveacutes de procedural brushes tentando combinar
a interaccedilatildeo manual localizada com a modificaccedilatildeo da parametrizaccedilatildeo por completo de heightfields
Esta abordagem eacute capaz de produzir alteraccedilotildees a tempo real graccedilas agrave respetiva implementaccedilatildeo
com shaders
Smelik et al [STdKB10] seguindo a respetiva proposta de modelaccedilatildeo de mundos virtuais
[STdKB08] propotildeem a utilizaccedilatildeo da abordagem Procedural sketching e demonstram-na num
protoacutetipo intitulado de SketchaWorld Esta abordagem eacute dividida em dois principais modos de
interaccedilatildeo (Figura 21) Landscape Mode e Feature Mode
Figura 21 Procedural sketching of virtual worlds por Smelik et al [STdKB10]
No primeiro o utilizador interage com uma vista top-down do terreno divido em grelha e eacute
capaz de definir a informaccedilatildeo geoloacutegica de cada ceacutelula atraveacutes do uso de Brushes Em Feature
Mode o utilizador manipula pontos de controlo correspondendo a vetores ou poliacutegonos que deli-
mitam a localizaccedilatildeo de cidades rios e vegetaccedilatildeo A ferramenta fornece feedback da construccedilatildeo do
terreno a um ritmo consideraacutevel para uma interaccedilatildeo fluida Esta tambeacutem dispotildee de funcionalida-
des como undo e redo para uma melhorar a interaccedilatildeo entre o utilizador e a ferramenta permitindo
assim a introduccedilatildeo de alteraccedilotildees e caso estas natildeo sejam desejadas pelo utilizador estas podem
ser desfeitas rapidamente Gain et al [GMSe09] propotildeem uma soluccedilatildeo que permite ao utilizador
esboccedilar as silhuetas e limites de corpos montanhosos a serem gerados
6
Estado da Arte e Trabalhos Relacionados
2112 Estradas
Num esforccedilo de melhorar a interaccedilatildeo com path layouts Singh et al [SM08] desenvolveram a
ferramenta Drive que permite a conceptualizaccedilatildeo de redes rodoviaacuterias tridimensionais por meio
de esboccedilos que satildeo posteriormente aproximados a clotoacuteides (Curvas em que o raio varia line-
armente) Com esta abordagem eacute possiacutevel produzir itineraacuterios em que as transiccedilotildees entre raios
de curvatura satildeo lineares tornando-os assim adequados para a conduccedilatildeo A ferramenta tambeacutem
introduz Terrain sensitive sketching que por meios automaacuteticos coloca sinalizaccedilatildeo no percurso e
vegetaccedilatildeo nas redondezas
2113 Vegetaccedilatildeo
Figura 22 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et al[IOI06b IOI06a]
O trabalho de Ijiri et al [IOI06b IOI06a] apresenta uma teacutecnica que atraveacutes de traccedilados defi-
nidos pelo utilizador (Figura 22) permite a manipulaccedilatildeo da direccedilatildeo de crescimento de vegetaccedilatildeo
produzida por L-Systems uma abordagem jaacute muito estudada para a criaccedilatildeo de vegetaccedilatildeo pro-
posta por Lindenmayer [Lin68] como um tipo de gramaacutetica formal capaz de representar padrotildees
e geometria fractal existente na vegetaccedilatildeo Em 1988 foi proposto por Prusinkiewicz [PLH88] a
utilizaccedilatildeo de L-systems para a modelaccedilatildeo de vegetaccedilatildeo Ao longo das ultimas deacutecadas tecircm sido
realizados avanccedilos consideraacuteveis na produccedilatildeo de vegetaccedilatildeo realiacutestica [WP95] e a respetiva inte-
raccedilatildeo com o seu meio ambiente [MP96 Pru00] tentado assim produzir vegetaccedilatildeo que melhor
simule o comportamento fiacutesico e bioloacutegico de vegetaccedilatildeo real
Mais recentemente o trabalho de Palubicky et al [PHL+09] foi expandido e transportado
para uma aplicaccedilatildeo para dispositivos iPad em que o modelador tem um controlo fino sobre o
crescimento de uma aacutervore Utilizando o conceito de tree self-organization Longay et al criaram
7
Estado da Arte e Trabalhos Relacionados
a ferramenta TreeSketch 23 que estimula a competiccedilatildeo entre os ramos de uma aacutervore por espaccedilo
e luz dentro dos paracircmetros e inputs visuais dados pelo utilizador [LRBP12]
Figura 23 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch
212 Editores Visuais
Numa tentativa de melhorar a interaccedilatildeo com modelaccedilatildeo procedimental baseada em gramaacuteticas
[WWSR03 MWH+06] Lipp et al propuseram uma abordagem que permite a manipulaccedilatildeo direta
do resultado produzido por uma gramaacutetica O utilizador pode manipular diretamente no objeto as
respetivas dimensotildees e configuraccedilotildees [LWW08]
Mais recentemente Krecklau et al [KK12] introduziram uma abordagem que permite a ge-
raccedilatildeo de cenas a partir de primitivas de alto niacutevel e a correspondente manipulaccedilatildeo por interaccedilatildeo
direta na cena consequentemente permitindo a utilizadores menos experientes a utilizaccedilatildeo de
gramaacuteticas procedimentais complexas sem a necessidade de interaccedilatildeo textual com as mesmas
2121 Visual Node Based
Editores Visual Node Based satildeo utilizados em muitas aplicaccedilotildees comercias como meio de
dar ao utilizador feedback visual do fluxo de informaccedilatildeo Encontra-se em editores de shaders
[Hol15 Aut15b] editores de animaccedilotildees [Tec15] e em editores de texturas [Cod15] A vasta uti-
lizaccedilatildeo da teacutecnica na aacuterea de produccedilatildeo de conteuacutedo 3D por utilizadores com pouca experiecircncia
de programaccedilatildeo levou a que investigadores a utilizassem para a especificaccedilatildeo de gramaacuteticas de
produccedilatildeo
Nesse contexto Patow [Pat12] desenvolveu uma soluccedilatildeo para a construccedilatildeo e manipulaccedilatildeo de
gramaacuteticas por meio de um editor visual onde noacutes que representam operaccedilotildees geomeacutetricas dos
correspondentes antecessores transmitem o resultado aos noacutes sucessores Na mesma publica-
ccedilatildeo Patow realccedila a importacircncia que esta abordagem acarreta para a modelaccedilatildeo procedimental de
edifiacutecios e admite que existe ainda muito potencial por explorar
8
Estado da Arte e Trabalhos Relacionados
Mais recentemente o trabalho de Silva et al [SMBC13] apresenta uma metodologia de edi-
ccedilatildeo em que grafos podem ser encapsulados em noacutes designados Component capazes de representar
construccedilotildees complexas Os noacutes podem ser facilmente introduzidos noutros grafos e editados por
meio de filtros de fluxo colocados nas arestas ou por restriccedilotildees que auxiliam a especificar a utili-
zaccedilatildeo dos noacutes (Figura 24)
Figura 24 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13]
213 Modelaccedilatildeo Procedimental Invertida
Inverse PM eacute uma teacutecnica em que um dado modelo de entrada eacute aproximado a uma represen-
taccedilatildeo procedimental
Aliaga et al [ARB07] apresenta a reconstruccedilatildeo de edifiacutecios por meio de fotografias Nesta
abordagem o utilizador define os limites das fachadas do edifiacutecio criando uma representaccedilatildeo
minimalista De seguida eacute automaticamente aproximada uma gramaacutetica que melhor representa
o edifiacutecio em questatildeo Com os trabalhos de Šrsquotava et al [ŠBM+10] na parametrizaccedilatildeo de arte
vetorial 2D e de Mitra et al [MGP06] em encontrar simetrias em objetos tridimensionais Bokeloh
et al [BWS10] aplica estes conceitos para a descoberta de simetrias nos objetos e a consequente
aproximaccedilatildeo de gramaacuteticas que definam o objeto em questatildeo
As abordagens atuais focam-se em Modelaccedilatildeo invertida de ambientes urbanos no entanto
Vanegas et al [VGDA+12] demonstram uma metodologia de aproximaccedilatildeo de gramaacuteticas capazes
de representar para aleacutem de edifiacutecios sistemas complexos de vegetaccedilatildeo aproximados a um objeto
jaacute existente
9
Estado da Arte e Trabalhos Relacionados
22 Modelaccedilatildeo 3D Manual
Para a produccedilatildeo de objetos tridimensionais os modeladores utilizam ferramentas dedicadas
que lhes datildeo um controlo total sobre o modelo a ser construiacutedo Estes variam em metaacuteforas de
interface e em puacuteblico alvo Nesta secccedilatildeo vatildeo ser abordadas as teacutecnicas de modelaccedilatildeo atualmente
utilizadas por estas ferramentas e seratildeo listadas as ferramentas existentes no mercado e as respeti-
vas funcionalidades principais
221 Teacutecnicas de Modelaccedilatildeo Manual
2211 Polygon Modelling
Polygon Modelling eacute uma abordagem para a representaccedilatildeo de superfiacutecies tridimensionais utili-
zando poliacutegonos estes satildeo representados por veacutertices e arestas e em grupos formam uma Polygon
Mesh que pode ser armazenada de muacuteltiplas formas [TM06 Bau72 Smi06] Eacute possiacutevel criar ma-
lhas veacutertice a veacutertice manualmente No entanto eacute comum a respetiva manipulaccedilatildeo em software
graacutefico concedendo aos modeladores ferramentas interativas como Blender Autodesk Maya e 3D
Studio Max
Figura 25 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14]
Uma das abordagens mais comuns eacute denominada Box Modelling na qual uma forma geomeacute-
trica considerada uma primitiva (ie cubo esfera cilindro) eacute esculpida iterativamente por pas-
sos de subdivisatildeo do objeto e subsequente manipulaccedilatildeo da geometria ateacute se obter o objeto final
[Jon02 sub14] A figura 25 demonstra da teacutecnica Box Modelling para a modelaccedilatildeo de uma face
Esta abordagem pode ser considerada uma abordagem Subtrativa pois eacute atraveacutes da reduccedilatildeo de um
objeto base que eacute obtido o objeto desejado
10
Estado da Arte e Trabalhos Relacionados
O polygon modelling caracteriza-se pelo controlo direto sobre a colocaccedilatildeo de cada veacutertice de
uma superfiacutecie permitindo dessa forma um controlo fino e preciso sobre o resultado a produzir
2212 NURBS
NURBS ou Non-uniform rational B-spline eacute uma generalizaccedilatildeo de B-Splines e Curvas de Beacute-
zier [KR79 Cab92] um modelo matemaacutetico usado para representar curvas e superfiacutecies com
grande precisatildeo e flexibilidade (Figura 26) Eacute principalmente utilizado em aacutereas da computaccedilatildeo
graacutefica (CAD CAM CAE) onde a precisatildeo dos modelos obtidos eacute muito importante Inicialmente
estudada por Matemaacuteticos como I J Schoenberg [Cob84] foi aplicada em sistemas CAD para a
modelaccedilatildeo na induacutestria Automoacutevel [Beacute83 Beacutez81 Bez68]
Figura 26 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modeloNURBS
2213 Digital Sculpting
Digital Sculpting eacute a adaptaccedilatildeo de teacutecnicas utilizadas para moldar materiais como o barro agrave
modelaccedilatildeo 3D Estas ferramentas permitem ao modelador empurrar puxar polir vincare
adicionar ou remover volume Perry et al [PF01] introduziram Kizamu um dos primeiros passos
na aacuterea do Digital Sculpting Os modelos satildeo representados no que eacute chamado de Adaptively Sam-
pled Distance Fields (ADF) [FPRJ00] que permite representar dados volumeacutetricos que tornam o
processo de Digital Sculpting possiacutevel
222 Ferramentas de Modelaccedilatildeo 3D
2221 Blender
O Blender [ble15a] eacute uma ferramenta profissional de modelaccedilatildeo de coacutedigo aberto desen-
volvida pela Blender Foundation Suporta uma grande variedade de primitivas geomeacutetricas in-
11
Estado da Arte e Trabalhos Relacionados
Figura 27 Interface da ferramenta Blender
cluiacutendo Polygon Meshes curvas de Bezier superfiacutecies NURBS Metaballs e Digital Sculpting
Esta destaca-se por ser gratuita e pela facilidade de criar extensotildees [ble15b] usando a API Python
existente [ble15c] que permite adicionar novas funcionalidades agrave ferramenta
2222 Autodesk Maya
Figura 28 Interface da ferramenta Autodesk Maya
O Autodesk Maya [Aut15b] eacute uma ferramenta de produccedilatildeo de conteuacutedo 3D utilizada nas induacutes-
trias do cinema televisatildeo videojogos e arquitetura Eacute de coacutedigo fechado e a respetiva utilizaccedilatildeo
requer que o utilizador possua uma licenccedila Tal como o Blender o Maya daacute aos modeladores
ferramentas para estes criarem objetos de uma forma interativa 28 Apesar de ser uma ferramenta
versaacutetil e capaz de satisfazer as necessidades de todas induacutestrias acima referidas o Autodesk
Maya tende a ser mais utilizado pela induacutestria do Cinema devido agrave vasta customizaccedilatildeo possiacutevel de
aspetos importantes para esta induacutestria como Animaccedilatildeo e VFX [Aut15c]
12
Estado da Arte e Trabalhos Relacionados
2223 Autodesk 3D Studio Max
O 3D Studio Max [Aut15a] eacute outra ferramenta da Autodesk em muitos aspetos semelhante
ao Maya No entanto o 3DS Max estaacute apenas disponiacutevel para maacutequinas de sistema operativo
Windows e sempre foi mais utilizado pela induacutestria dos videojogos para a criaccedilatildeo de modelos 3D
Tal como o Autodesk Maya este dispotildee de poderosos motores de renderizaccedilatildeo Ray Tracing
2224 Zbrush
O Zbrush [Pix15] eacute uma ferramenta de modelaccedilatildeo 3D baseada nos conceitos de Digital Mo-
delling Daacute ao artista muacuteltiplas Brushes que permitem manipular o objeto a ser definido com
paradigmas transportados de outras aacutereas artiacutesticas Pode tornar mais acessiacutevel para um utilizador
pouco experiente com alguns paradigmas da Computaccedilatildeo Graacutefica a modelaccedilatildeo de objetos com
consideraacutevel detalhe e liberdade artiacutestica [Spe11]
23 Sumaacuterio
Apoacutes o levantamento do estado da arte eacute possiacutevel constatar que as ferramentas de modelaccedilatildeo
manual satildeo a escolha de eleiccedilatildeo para contextos em que o modelador deseja o maior niacutevel controlo
possiacutevel sobre o objeto a ser produzido No entanto considerando ferramentas de modelaccedilatildeo
procedimental tem existido um esforccedilo por parte desta comunidade para tornar a correspondente
experiecircncia de utilizaccedilatildeo mais acessiacutevel a utilizadores pouco familiarizados com o funcionamento
do mesmo Por enquanto a utilizaccedilatildeo deste tipo de ferramentas ainda requer que o conteuacutedo
seja criado em ferramentas dedicadas completamente separadas das ferramentas tradicionais (ie
Maya Blender) essenciais para o trabalho artiacutestico levando a quebras no fluxo de trabalho
13
Estado da Arte e Trabalhos Relacionados
14
Capiacutetulo 3
Metodologia
Com os desenvolvimentos atuais na aacuterea de modelaccedilatildeo procedimental apresentados no capiacute-
tulo 2 eacute possiacutevel verificar que as soluccedilotildees de MP existentes permitem produzir variados tipos de
conteuacutedo tais como terrenos vegetaccedilatildeo edifiacutecios estradas e cidades por outro lado as respeti-
vas integraccedilotildees em ambientes de modelaccedilatildeo manual satildeo algo limitadas ou apenas disponiacuteveis em
ferramentas externas especializadas num uacutenico tipo de conteuacutedo
Da mesma forma como verificado em 21 foram efetuadas vaacuterias tentativas pela comunidade
envolvida em geraccedilatildeo procedimental no sentido a melhorar a interaccedilatildeo com ferramentas dedica-
das agrave geraccedilatildeo procedimental no entanto existe ainda uma grande margem para avanccedilo de uma
integraccedilatildeo geneacuterica destes processos numa ferramenta de modelaccedilatildeo manual Devido agrave falta de
soluccedilotildees que se integrem de forma transparente e acessiacutevel em ambientes de modelaccedilatildeo manual
pretende-se apresentar uma soluccedilatildeo com o objetivo de interligar as duas abordagens neste capiacute-
tulo Inicialmente seraacute apresentada em pormenor a arquitetura da soluccedilatildeo de seguida o protocolo
de comunicaccedilatildeo entre os dois ambientes de modelaccedilatildeo e finalmente seraacute proposto um meacutetodo de
trabalho no qual seraacute descrita a interaccedilatildeo ideal entre o modelador e a soluccedilatildeo proposta
31 Meacutetodo de Trabalho
Numa interaccedilatildeo ideal o modelador teria controlo absoluto sobre os meacutetodos de geraccedilatildeo proce-
dimental e seria possiacutevel modelar procedimentalmente sobre alteraccedilotildees manuais realizadas sobre
o objeto No entanto nem sempre eacute desejado esse niacutevel de controlo e interligaccedilatildeo entre as aborda-
gens Imaginando a modelaccedilatildeo de um edifiacutecio este eacute construiacutedo segundo meacutetodos procedimentais
e recebe como entrada um poliacutegono que delimita a fundaccedilatildeo assim como paracircmetros numeacutericos e
booleanos que definem a geometria resultante Depois de modelado procedimentalmente o objeto
eacute adicionado ao ambiente de modelaccedilatildeo manual onde o modelador pode realizar alteraccedilotildees em
detalhes na geometria ou mesmo alteraccedilotildees profundas na geometria do mesmo
15
Metodologia
Considerando uma situaccedilatildeo em que o modelador realizou alteraccedilotildees profundas na geometria
produzida como por exemplo a reparticcedilatildeo de uma das fachadas do edifiacutecio em trecircs fachadas
Assim que realizadas estas alteraccedilotildees o utilizador pretende alterar a altura do edifiacutecio alterando o
paracircmetro correspondente e requisitando uma atualizaccedilatildeo Para ser possiacutevel manter as alteraccedilotildees
realizadas manualmente e em simultacircneo respeitar as regras definidas pela geraccedilatildeo procedimen-
tal seria necessaacuterio converter estas alteraccedilotildees em regras possiacuteveis de definir no escopo do ambiente
de geraccedilatildeo procedimental
De qualquer das formas as alteraccedilotildees realizadas no ponto anterior podem simplesmente natildeo
fazer sentido apoacutes a aplicaccedilatildeo sobre o objeto que foi reproduzido seguindo as regras definias
por um procedimento Devido a esta limitaccedilatildeo eacute assumido que assim que o utilizador requisita
uma nova execuccedilatildeo de um procedimento o qual natildeo tem problemas em descartar as alteraccedilotildees
executadas manualmente sobre o objeto em questatildeo
Tendo em consideraccedilatildeo esta limitaccedilatildeo eacute possiacutevel estruturar um fluxo de trabalho que melhor
explore as vantagens e limitaccedilotildees de ambas as abordagens de geraccedilatildeo de conteuacutedo tridimensional
O utilizador tem uma panoacuteplia de conteuacutedos procedimentais ao seu dispor que podem ser definidas
via paracircmetros numeacutericos e geomeacutetricos O conteuacutedo eacute adicionado ao ambiente de modelaccedilatildeo ma-
nual e os paracircmetros podem ainda ser editados alterados ao custo de que as modificaccedilotildees manuais
realizadas sobre o objeto sejam descartadas
32 Metodologias de Interaccedilatildeo com o Utilizador
Em relaccedilatildeo agrave interaccedilatildeo com o utilizador foram estudadas trecircs abordagens para a interaccedilatildeo com
meacutetodos de geraccedilatildeo procedimental em ambiente de modelaccedilatildeo manual
321 Modificadores
O conceito de modificadores eacute jaacute utilizado em ambientes de modelaccedilatildeo manual eg no Blen-
der [Bap14 Ble15e] onde satildeo utilizados para realizar operaccedilotildees sobre objetos na cena sem destruir
a geometria subjacente apenas modificam a forma como os objetos satildeo percecionados pelo motor
de renderizaccedilatildeo Esta abordagem eacute uacutetil em situaccedilotildees onde o procedimento a ser executado en-
volve modificaccedilotildees sobre uma geometria base como tal permitindo realizar muacuteltiplas alteraccedilotildees
sobre um objeto podendo estas ser facilmente canceladas recuperando o objeto original No en-
tanto nem todos os recursos de geraccedilatildeo procedimental incidem sobre modificaccedilatildeo de geometria
Os meios de geraccedilatildeo procedimental em muitas situaccedilotildees produzem objetos e cenaacuterios uacutenicos e
independentes de qualquer geometria de entrada
322 Grafos
A abordagem de interaccedilatildeo via grafos eacute atualmente utilizada num ambiente de modelaccedilatildeo ma-
nual para a ediccedilatildeo de materiais [Ble15d] Tambeacutem chamada de Flow-Based Programming esta
16
Metodologia
abordagem permite apresentar ao utilizador os procedimentos como uma caixa negra com pos-
siacuteveis entradas e saiacutedas representadas como ligaccedilotildees de fluxo A correspondente utilizaccedilatildeo na
interaccedilatildeo com geraccedilatildeo procedimental pode permitir o encadeamento de muacuteltiplos procedimentos
No entanto a abordagem pode ser mais trabalhosa para o utilizador introduzindo um niacutevel de
interaccedilatildeo adicional para cada objeto introduzido na cena
323 Funccedilotildees
Esta abordagem disponibiliza ao utilizador cada recurso de geraccedilatildeo procedimental como uma
funccedilatildeo disponiacutevel a qualquer momento na interface da ferramenta de modelaccedilatildeo manual Aquando
da respetiva invocaccedilatildeo satildeo requisitados aos utilizadores os paracircmetros necessaacuterios agrave execuccedilatildeo
A abordagem em causa eacute potencialmente a mais faacutecil de adotar por parte dos utilizadores de
ferramentas de modelaccedilatildeo manual Devido agrave simplicidade na interaccedilatildeo assim como a reduzida
necessidade de tempo e recursos para a implementaccedilatildeo esta foi a abordagem de interaccedilatildeo utilizada
na soluccedilatildeo desenvolvida
33 Arquitetura da Soluccedilatildeo
Para abordar este problema eacute proposta a utilizaccedilatildeo de duas aplicaccedilotildees jaacute presentes no mer-
cado Uma aplicaccedilatildeo dedicada agrave modelaccedilatildeo procedimental e uma aplicaccedilatildeo de modelaccedilatildeo manual
Foi escolhida esta abordagem na medida em que eacute possiacutevel utilizar duas aplicaccedilotildees jaacute existentes
sendo possiacutevel dessa forma aproveitar os pontos fortes de cada soluccedilatildeo com o intuito de otimi-
zar o processo de criaccedilatildeo de novos cenaacuterios e conteuacutedo tridimensional Esta abordagem pode ser
representada como uma soluccedilatildeo estruturada numa arquitetura Cliente-Servidor em que a aplica-
ccedilatildeo de geraccedilatildeo procedimental eacute capaz de fornecer serviccedilos de geraccedilatildeo de conteuacutedo a um ou mais
clientes de modelaccedilatildeo Esta abordagem interliga as duas aplicaccedilotildees atraveacutes de um protocolo de
comunicaccedilatildeo Este permite ao utilizador da ferramenta de modelaccedilatildeo manual requisitar a produ-
ccedilatildeo de conteuacutedo seguindo os valores impostos pelo utilizador nos paracircmetros do procedimento
requisitado O protocolo eacute descrito em maior detalhe na secccedilatildeo 34
331 Vantagens
Faacutecil integraccedilatildeo em diferentes plataformas Devido agrave arquitetura ser baseada na comunicaccedilatildeo
entre duas aplicaccedilotildees por um protocolo de comunicaccedilatildeo geneacuterico eacute com alguma facili-
dade que se realiza a interligaccedilatildeo com diferentes soluccedilotildees de geraccedilatildeo procedimental ou de
modelaccedilatildeo manual Sendo assim possiacutevel a expansatildeo para novos ambientes de modelaccedilatildeo
manual ou mesmo introduzir novas soluccedilotildees de geraccedilatildeo procedimental
Escalabilidade A arquitetura proposta poderaacute permitir que esta seja implementada de modo a que
um servidor central de geraccedilatildeo procedimental sirva por exemplo num ambiente empresa-
rial como um repositoacuterio de recursos de geraccedilatildeo de conteuacutedos desta forma permitindo
17
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Abstract
The domain of tridimensional modelling contains two major approaches manual modellingand procedural modelling In the first the user models the object interacting directly with theresult through virtual tools which in some cases work similarly to those utilized by modelers inreal objects thus allowing for direct and rigorous control over what is being produced In pro-cedural modelling the objects are created automatically through several user-defined conditionsby textual rules in a dedicated language or data-flow graphs allowing for quick and large-scaleproduction of 3D content On the other hand interaction with these methods isnrsquot always the mostintuitive In cases where itrsquos necessary to introduce particular details the procedural generationprocess becomes too taxing For those situations manual modelling would be the most adequate toperform corrections or small adjustments over details So it is important to find a medium whichpermits combining the advantages of manual modelling with those of procedural modelling sothat potential users may create tridimensional models with greater efficiency
This dissertation has as its objective the evaluation of possible integrations of the two mainapproaches of 3D modelling and the impact of the corresponding usage To that purpose a solu-tion that aims to integrate the procedural modelling tool Construct in the manual modelling toolBlender was implemented and tested
iii
iv
Agradecimentos
Comeccedilo por agradecer aos meus orientadores o Professor Rui Pedro Amaral Rodrigues PedroAmorim Brandatildeo da Silva e o Joatildeo Tiago Neto Jacob pelo seu trabalho conselhos e apoio semos quais esta dissertaccedilatildeo natildeo seria concluiacuteda Agradeccedilo tambeacutem ao Professor Pedro Cardoso daFaculdade de Belas Artes da Universidade do Porto pelo apoio dado no decorrer desta dissertaccedilatildeo
Agradeccedilo a todos os membros da Faculdade de Engenharia da Universidade do Porto e doDepartamento de Engenharia Informaacutetica e Computaccedilatildeo por me motivarem e ensinarem durantedestes anos
Agradeccedilo em particular ao meu colega e amigo Joatildeo Almeida pelo apoio que me deu na revisatildeodeste documento Finalmente gostaria de agradecer aos meus paiacutes irmatildeo amigos colegas decurso e familiares pelo apoio que me deram ao longo do meu percurso acadeacutemico
Rui Miguel Barros Gonccedilalves
v
vi
ldquoWhat we usually consider as impossible are simply engineering problemstherersquos no law of physics preventing themrdquo
Dr Michio Kaku
vii
viii
Conteuacutedo
1 Introduccedilatildeo 111 Contexto 212 Motivaccedilatildeo e Problema 213 Objetivos 314 Estrutura do documento 3
2 Estado da Arte e Trabalhos Relacionados 521 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais 5
211 Teacutecnicas Sketch-based 5212 Editores Visuais 8213 Modelaccedilatildeo Procedimental Invertida 9
22 Modelaccedilatildeo 3D Manual 10221 Teacutecnicas de Modelaccedilatildeo Manual 10222 Ferramentas de Modelaccedilatildeo 3D 11
23 Sumaacuterio 13
3 Metodologia 1531 Meacutetodo de Trabalho 1532 Metodologias de Interaccedilatildeo com o Utilizador 16
321 Modificadores 16322 Grafos 16323 Funccedilotildees 17
33 Arquitetura da Soluccedilatildeo 17331 Vantagens 17332 Desvantagens 18
34 Protocolo de Comunicaccedilatildeo 19
4 Implementaccedilatildeo 2141 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual 2142 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental 2243 Comunicaccedilatildeo 2344 Construccedilatildeo da Interface 2545 Execuccedilatildeo 26
5 Teste da Soluccedilatildeo e Resultados Obtidos 3151 Metodologia de Teste 3152 Resultados 36
ix
CONTEUacuteDO
6 Conclusotildees e Trabalho Futuro 3961 Trabalho Futuro 39
Referecircncias 41
A Mensagens JSON 47A1 JSON de Pedido de Abertura do Projeto Urban 47A2 JSON de Informaccedilatildeo do Projeto Urban 47A3 Exemplo de Pedido para Gerar um Grafo 49A4 Exemplo de Resposta de Erro do Servidor 50
B Principais Grafos do Projeto Urban 51
C Cenaacuterios Resultantes dos Testes com Utilizadores 55
x
Lista de Figuras
11 Captura de ecratilde do viacutedeo jogo Crysis 3 da Electronic Arts 2
21 Procedural sketching of virtual worlds por Smelik et al [STdKB10] 622 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et
al [IOI06b IOI06a] 723 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch 824 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13] 925 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14] 1026 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modelo
NURBS 1127 Interface da ferramenta Blender 1228 Interface da ferramenta Autodesk Maya 12
31 Diagrama do sistema proposto 18
41 Editor Construct em execuccedilatildeo 2242 Grafo exemplo e respetiva geometria produzida 2343 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct 2444 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct
a abrir 2445 Barra de ferramentas depois de aberto um projeto 2646 JSON enviado ao servidor para a execuccedilatildeo de um grafo 2647 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base 2748 Edifiacutecio depois de adicionado agrave cena 2749 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores 28410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular 28411 Custom Properties de um objeto produzido por um grafo Cube 29
51 Cenaacuterio requisitado aos utilizadores 3152 Exemplos de resultados possiacuteveis do grafo Building 3253 Exemplo de resultado do grafo Window 3354 Exemplo de resultado do grafo Door 3355 Exemplo de resultado do grafo CityStreets 3456 Cursor 3D do Blender 36
B1 Grafo Building como visto no editor Construct 51B2 Grafo CityStreets como visto no editor Construct 52B3 Grafo Window como visto no editor Construct 52B4 Grafo Door como visto no editor Construct 53
xi
LISTA DE FIGURAS
B5 Grafo DetailedRoof como visto no editor Construct 53
C1 Cenaacuterio criado pelo utilizador 3 55C2 Cenaacuterio criado pelo utilizador 4 56
xii
Lista de Tabelas
41 Estatiacutesticas dos principais foacuteruns 2242 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender 25
51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e otempo utilizado para construir o cenaacuterio utilizando o add-on desenvolvido 37
52 Resultados da avaliaccedilatildeo de usabilidade do sistema 37
xiii
LISTA DE TABELAS
xiv
Abreviaturas e Siacutembolos
API Application Programming InterfaceCAD Computer-Aided DesignCASE Computer-Aided Software EngineeringCGI Computer-Generated ImageJSON JavaScript Object NotationMP Modelaccedilatildeo ProcedimentalGP Geraccedilatildeo ProcedimentalMM Modelaccedilatildeo ManualSUS System Usability ScaleTCP Transmission Control Protocol
xv
Capiacutetulo 1
Introduccedilatildeo
A criaccedilatildeo de ambientes virtuais eacute um toacutepico muito relevante em computaccedilatildeo graacutefica e reali-
dade virtual tendo aplicaccedilotildees na induacutestria do entretenimento para a produccedilatildeo filmes e videojogos
entre outros Na induacutestria do cinema estes ambientes virtuais satildeo utilizados para criar imagens
impossiacuteveis de reproduzir atraveacutes de meios praacuteticos Na induacutestria dos videojogos cada vez mais
encontramos jogos em ambientes de maior dimensatildeo e com um elevado niacutevel de detalhe (Figura
11)
Em modelaccedilatildeo a abordagem tradicional eacute a de Modelaccedilatildeo Manual que permite ao artista
controlo completo e fino do objeto a ser criado No que toca agrave criaccedilatildeo de cenaacuterios de elevadas
dimensotildees como montanhas cidades estradas e vegetaccedilatildeo a abordagem tradicional torna-se cada
vez menos viaacutevel A introduccedilatildeo de meacutetodos procedimentais na geraccedilatildeo destes conteuacutedos permite
produzir resultados de alta qualidade com alguma facilidade produzindo cenaacuterios numa fraccedilatildeo do
tempo e do custo correspondentes agrave respetiva produccedilatildeo por meio de modelaccedilatildeo manual
Apesar do grande impacto positivo que esta abordagem trouxe para a induacutestria de um ponto
de vista artiacutestico nem sempre o resultado eacute o mais desejado desta forma podendo necessitar
da introduccedilatildeo de pormenores e alteraccedilotildees finas agrave respetiva geometria para produzir um resultado
uacutenico e mais proacuteximo da visatildeo artiacutestica do criador Para tal tecircm sido desenvolvidas teacutecnicas
para uma interaccedilatildeo mais intuitiva com a modelaccedilatildeo procedimental tentado dar ao modelador um
melhor controlo sobre os meacutetodos automatizados que lhes estatildeo subjacentes natildeo possuindo ainda
o niacutevel de controlo fino que uma ferramenta de modelaccedilatildeo manual pode oferecer
1
Introduccedilatildeo
Figura 11 Captura de ecratilde do viacutedeo jogo Crysis 3 da Electronic Arts
11 Contexto
Esta dissertaccedilatildeo insere-se na aacuterea da computaccedilatildeo graacutefica mais especificamente na aacuterea da mo-
delaccedilatildeo tridimensional geraccedilatildeo procedimental de modelos 3D e interaccedilatildeo com os mesmos Estas
aacutereas intersectam-se em rumo a uma melhor interaccedilatildeo com recursos de geraccedilatildeo procedimental
num ambiente de modelaccedilatildeo manual
Esta dissertaccedilatildeo foi realizada na Faculdade de Engenharia da Universidade do Porto no Labo-
ratoacuterio de IampD de Computaccedilatildeo Graacutefica Interaccedilatildeo e Jogos
12 Motivaccedilatildeo e Problema
Os avanccedilos no desenvolvimento de hardware e software resultam numa necessidade de con-
teuacutedo tridimensional maior e mais detalhado criando uma maior carga nas equipas que os pro-
duzem Como mencionado previamente a utilizaccedilatildeo de modelaccedilatildeo procedimental para a criaccedilatildeo
raacutepida de ambientes tridimensionais eacute altamente apelativa para a induacutestria permitindo poupar
tempo e dinheiro comparativamente a uma abordagem manual
No entanto esta abordagem dificulta ao modelador a introduccedilatildeo de pormenores pois os meacute-
todos procedimentais satildeo definidos tipicamente por um conjunto de regras e paracircmetros de uma
forma natildeo intuitiva ou de controlo limitado A simples modificaccedilatildeo de um paracircmetro pode criar
uma reaccedilatildeo em cadeia de modificaccedilotildees que alteram por completo o modelo gerado Eacute assim ape-
lativo encontrar um meacutetodo que melhor aproveite as vantagens das duas abordagens permitindo
aos modeladores uma produccedilatildeo de conteuacutedo tridimensional mais raacutepida e controlada
2
Introduccedilatildeo
13 Objetivos
O objetivo principal deste trabalho eacute desenvolver uma soluccedilatildeo que melhor aproveite as vanta-
gens das duas principais abordagens agrave modelaccedilatildeo 3D para tal eacute possiacutevel identificar os seguintes
objetivos especiacuteficos
bull Investigar o estado da arte da aacuterea da modelaccedilatildeo procedimental e modelaccedilatildeo manual em
particular os avanccedilos realizados na interaccedilatildeo com os meacutetodos utilizados em modelaccedilatildeo pro-
cedimental
bull Estudar as metodologias possiacuteveis para abordar o problema
bull Desenvolver uma soluccedilatildeo utilizando uma abordagem possiacutevel com os recursos disponiacuteveis
bull Testar a soluccedilatildeo com utilizadores proficientes em modelaccedilatildeo de conteuacutedo 3D
14 Estrutura do documento
Esta dissertaccedilatildeo encontra-se dividida em 6 capiacutetulos anexos e referecircncias O capiacutetulo pre-
sente consiste numa descriccedilatildeo do problema da motivaccedilatildeo e dos objetivos propostos para a cor-
respondente realizaccedilatildeo No capiacutetulo 2 eacute realizado um levantamento do estado da arte nas aacutereas
da modelaccedilatildeo procedimental e modelaccedilatildeo manual em especial os avanccedilos realizados na interaccedilatildeo
com os meacutetodos utilizados em modelaccedilatildeo procedimental No capiacutetulo 3 satildeo discutidas as meto-
dologias estudadas para a melhor interaccedilatildeo entre as duas abordagens agrave modelaccedilatildeo sendo tambeacutem
apresentada com maior detalhe a metodologia a ser utilizada
No capiacutetulo 4 satildeo descritos alguns detalhes de implementaccedilatildeo da soluccedilatildeo desenvolvida base-
ada na metodologia discutida no capiacutetulo 3
No capiacutetulo 5 eacute apresentada a metodologia de teste utilizada para avaliar a soluccedilatildeo desenvol-
vida sendo tambeacutem apresentados os resultados obtidos
No capiacutetulo 6 o final da dissertaccedilatildeo satildeo resumidas algumas constataccedilotildees e conclusotildees rea-
lizadas sobre esta dissertaccedilatildeo Eacute efetuada tambeacutem uma listagem de alguns pontos para potencial
trabalho futuro
3
Introduccedilatildeo
4
Capiacutetulo 2
Estado da Arte e TrabalhosRelacionados
Neste capiacutetulo seraacute realizada uma revisatildeo bibliograacutefica que visa apresentar todos os avanccedilos
realizados nas aacutereas da interaccedilatildeo com os meacutetodos de geraccedilatildeo procedimental Seratildeo apresentados
os tipos de conteuacutedo passiacuteveis de serem produzidos por meio destes meacutetodos bem como as teacutec-
nicas utilizadas para a respetiva interaccedilatildeo e geraccedilatildeo Iratildeo tambeacutem ser apresentadas as abordagens
existentes para uma modelaccedilatildeo manual e as ferramentas existentes no mercado
21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundosvirtuais
O paradigma de interaccedilatildeo com meacutetodos de geraccedilatildeo procedimental eacute tradicionalmente funci-
onal Cada procedimento pode ser considerado uma caixa negra de operaccedilotildees que dependendo
de certos valores de entrada produz um ou mais resultados A interaccedilatildeo com estes nem sempre
eacute a mais intuitiva pois para atingir o resultado desejado envolve em repetidas tentativa e erro por
parte do utilizador No entanto em anos recentes tem existido um avanccedilo consideraacutevel nesta aacuterea
tentado conceder ao utilizador maior controlo sobre os meacutetodos de geraccedilatildeo procedimental com
abordagens como Sketch-based editores visuais e Modelaccedilatildeo Procedimental Invertida
211 Teacutecnicas Sketch-based
Esta abordagem tenta aproximar o tipo de interaccedilatildeo com que os principais utilizadores de
meacutetodos de Modelaccedilatildeo Procedimental estatildeo familiarizados Noccedilotildees como Brushes e Sketches satildeo
alguns dos conceitos mais populares entre designers profissionais
5
Estado da Arte e Trabalhos Relacionados
2111 Terrenos
De Carpentier et al [dCB09] propuseram um meacutetodo de ediccedilatildeo de terrenos no qual eacute dada ao
utilizador a possibilidade de alterar o heightfield atraveacutes de procedural brushes tentando combinar
a interaccedilatildeo manual localizada com a modificaccedilatildeo da parametrizaccedilatildeo por completo de heightfields
Esta abordagem eacute capaz de produzir alteraccedilotildees a tempo real graccedilas agrave respetiva implementaccedilatildeo
com shaders
Smelik et al [STdKB10] seguindo a respetiva proposta de modelaccedilatildeo de mundos virtuais
[STdKB08] propotildeem a utilizaccedilatildeo da abordagem Procedural sketching e demonstram-na num
protoacutetipo intitulado de SketchaWorld Esta abordagem eacute dividida em dois principais modos de
interaccedilatildeo (Figura 21) Landscape Mode e Feature Mode
Figura 21 Procedural sketching of virtual worlds por Smelik et al [STdKB10]
No primeiro o utilizador interage com uma vista top-down do terreno divido em grelha e eacute
capaz de definir a informaccedilatildeo geoloacutegica de cada ceacutelula atraveacutes do uso de Brushes Em Feature
Mode o utilizador manipula pontos de controlo correspondendo a vetores ou poliacutegonos que deli-
mitam a localizaccedilatildeo de cidades rios e vegetaccedilatildeo A ferramenta fornece feedback da construccedilatildeo do
terreno a um ritmo consideraacutevel para uma interaccedilatildeo fluida Esta tambeacutem dispotildee de funcionalida-
des como undo e redo para uma melhorar a interaccedilatildeo entre o utilizador e a ferramenta permitindo
assim a introduccedilatildeo de alteraccedilotildees e caso estas natildeo sejam desejadas pelo utilizador estas podem
ser desfeitas rapidamente Gain et al [GMSe09] propotildeem uma soluccedilatildeo que permite ao utilizador
esboccedilar as silhuetas e limites de corpos montanhosos a serem gerados
6
Estado da Arte e Trabalhos Relacionados
2112 Estradas
Num esforccedilo de melhorar a interaccedilatildeo com path layouts Singh et al [SM08] desenvolveram a
ferramenta Drive que permite a conceptualizaccedilatildeo de redes rodoviaacuterias tridimensionais por meio
de esboccedilos que satildeo posteriormente aproximados a clotoacuteides (Curvas em que o raio varia line-
armente) Com esta abordagem eacute possiacutevel produzir itineraacuterios em que as transiccedilotildees entre raios
de curvatura satildeo lineares tornando-os assim adequados para a conduccedilatildeo A ferramenta tambeacutem
introduz Terrain sensitive sketching que por meios automaacuteticos coloca sinalizaccedilatildeo no percurso e
vegetaccedilatildeo nas redondezas
2113 Vegetaccedilatildeo
Figura 22 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et al[IOI06b IOI06a]
O trabalho de Ijiri et al [IOI06b IOI06a] apresenta uma teacutecnica que atraveacutes de traccedilados defi-
nidos pelo utilizador (Figura 22) permite a manipulaccedilatildeo da direccedilatildeo de crescimento de vegetaccedilatildeo
produzida por L-Systems uma abordagem jaacute muito estudada para a criaccedilatildeo de vegetaccedilatildeo pro-
posta por Lindenmayer [Lin68] como um tipo de gramaacutetica formal capaz de representar padrotildees
e geometria fractal existente na vegetaccedilatildeo Em 1988 foi proposto por Prusinkiewicz [PLH88] a
utilizaccedilatildeo de L-systems para a modelaccedilatildeo de vegetaccedilatildeo Ao longo das ultimas deacutecadas tecircm sido
realizados avanccedilos consideraacuteveis na produccedilatildeo de vegetaccedilatildeo realiacutestica [WP95] e a respetiva inte-
raccedilatildeo com o seu meio ambiente [MP96 Pru00] tentado assim produzir vegetaccedilatildeo que melhor
simule o comportamento fiacutesico e bioloacutegico de vegetaccedilatildeo real
Mais recentemente o trabalho de Palubicky et al [PHL+09] foi expandido e transportado
para uma aplicaccedilatildeo para dispositivos iPad em que o modelador tem um controlo fino sobre o
crescimento de uma aacutervore Utilizando o conceito de tree self-organization Longay et al criaram
7
Estado da Arte e Trabalhos Relacionados
a ferramenta TreeSketch 23 que estimula a competiccedilatildeo entre os ramos de uma aacutervore por espaccedilo
e luz dentro dos paracircmetros e inputs visuais dados pelo utilizador [LRBP12]
Figura 23 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch
212 Editores Visuais
Numa tentativa de melhorar a interaccedilatildeo com modelaccedilatildeo procedimental baseada em gramaacuteticas
[WWSR03 MWH+06] Lipp et al propuseram uma abordagem que permite a manipulaccedilatildeo direta
do resultado produzido por uma gramaacutetica O utilizador pode manipular diretamente no objeto as
respetivas dimensotildees e configuraccedilotildees [LWW08]
Mais recentemente Krecklau et al [KK12] introduziram uma abordagem que permite a ge-
raccedilatildeo de cenas a partir de primitivas de alto niacutevel e a correspondente manipulaccedilatildeo por interaccedilatildeo
direta na cena consequentemente permitindo a utilizadores menos experientes a utilizaccedilatildeo de
gramaacuteticas procedimentais complexas sem a necessidade de interaccedilatildeo textual com as mesmas
2121 Visual Node Based
Editores Visual Node Based satildeo utilizados em muitas aplicaccedilotildees comercias como meio de
dar ao utilizador feedback visual do fluxo de informaccedilatildeo Encontra-se em editores de shaders
[Hol15 Aut15b] editores de animaccedilotildees [Tec15] e em editores de texturas [Cod15] A vasta uti-
lizaccedilatildeo da teacutecnica na aacuterea de produccedilatildeo de conteuacutedo 3D por utilizadores com pouca experiecircncia
de programaccedilatildeo levou a que investigadores a utilizassem para a especificaccedilatildeo de gramaacuteticas de
produccedilatildeo
Nesse contexto Patow [Pat12] desenvolveu uma soluccedilatildeo para a construccedilatildeo e manipulaccedilatildeo de
gramaacuteticas por meio de um editor visual onde noacutes que representam operaccedilotildees geomeacutetricas dos
correspondentes antecessores transmitem o resultado aos noacutes sucessores Na mesma publica-
ccedilatildeo Patow realccedila a importacircncia que esta abordagem acarreta para a modelaccedilatildeo procedimental de
edifiacutecios e admite que existe ainda muito potencial por explorar
8
Estado da Arte e Trabalhos Relacionados
Mais recentemente o trabalho de Silva et al [SMBC13] apresenta uma metodologia de edi-
ccedilatildeo em que grafos podem ser encapsulados em noacutes designados Component capazes de representar
construccedilotildees complexas Os noacutes podem ser facilmente introduzidos noutros grafos e editados por
meio de filtros de fluxo colocados nas arestas ou por restriccedilotildees que auxiliam a especificar a utili-
zaccedilatildeo dos noacutes (Figura 24)
Figura 24 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13]
213 Modelaccedilatildeo Procedimental Invertida
Inverse PM eacute uma teacutecnica em que um dado modelo de entrada eacute aproximado a uma represen-
taccedilatildeo procedimental
Aliaga et al [ARB07] apresenta a reconstruccedilatildeo de edifiacutecios por meio de fotografias Nesta
abordagem o utilizador define os limites das fachadas do edifiacutecio criando uma representaccedilatildeo
minimalista De seguida eacute automaticamente aproximada uma gramaacutetica que melhor representa
o edifiacutecio em questatildeo Com os trabalhos de Šrsquotava et al [ŠBM+10] na parametrizaccedilatildeo de arte
vetorial 2D e de Mitra et al [MGP06] em encontrar simetrias em objetos tridimensionais Bokeloh
et al [BWS10] aplica estes conceitos para a descoberta de simetrias nos objetos e a consequente
aproximaccedilatildeo de gramaacuteticas que definam o objeto em questatildeo
As abordagens atuais focam-se em Modelaccedilatildeo invertida de ambientes urbanos no entanto
Vanegas et al [VGDA+12] demonstram uma metodologia de aproximaccedilatildeo de gramaacuteticas capazes
de representar para aleacutem de edifiacutecios sistemas complexos de vegetaccedilatildeo aproximados a um objeto
jaacute existente
9
Estado da Arte e Trabalhos Relacionados
22 Modelaccedilatildeo 3D Manual
Para a produccedilatildeo de objetos tridimensionais os modeladores utilizam ferramentas dedicadas
que lhes datildeo um controlo total sobre o modelo a ser construiacutedo Estes variam em metaacuteforas de
interface e em puacuteblico alvo Nesta secccedilatildeo vatildeo ser abordadas as teacutecnicas de modelaccedilatildeo atualmente
utilizadas por estas ferramentas e seratildeo listadas as ferramentas existentes no mercado e as respeti-
vas funcionalidades principais
221 Teacutecnicas de Modelaccedilatildeo Manual
2211 Polygon Modelling
Polygon Modelling eacute uma abordagem para a representaccedilatildeo de superfiacutecies tridimensionais utili-
zando poliacutegonos estes satildeo representados por veacutertices e arestas e em grupos formam uma Polygon
Mesh que pode ser armazenada de muacuteltiplas formas [TM06 Bau72 Smi06] Eacute possiacutevel criar ma-
lhas veacutertice a veacutertice manualmente No entanto eacute comum a respetiva manipulaccedilatildeo em software
graacutefico concedendo aos modeladores ferramentas interativas como Blender Autodesk Maya e 3D
Studio Max
Figura 25 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14]
Uma das abordagens mais comuns eacute denominada Box Modelling na qual uma forma geomeacute-
trica considerada uma primitiva (ie cubo esfera cilindro) eacute esculpida iterativamente por pas-
sos de subdivisatildeo do objeto e subsequente manipulaccedilatildeo da geometria ateacute se obter o objeto final
[Jon02 sub14] A figura 25 demonstra da teacutecnica Box Modelling para a modelaccedilatildeo de uma face
Esta abordagem pode ser considerada uma abordagem Subtrativa pois eacute atraveacutes da reduccedilatildeo de um
objeto base que eacute obtido o objeto desejado
10
Estado da Arte e Trabalhos Relacionados
O polygon modelling caracteriza-se pelo controlo direto sobre a colocaccedilatildeo de cada veacutertice de
uma superfiacutecie permitindo dessa forma um controlo fino e preciso sobre o resultado a produzir
2212 NURBS
NURBS ou Non-uniform rational B-spline eacute uma generalizaccedilatildeo de B-Splines e Curvas de Beacute-
zier [KR79 Cab92] um modelo matemaacutetico usado para representar curvas e superfiacutecies com
grande precisatildeo e flexibilidade (Figura 26) Eacute principalmente utilizado em aacutereas da computaccedilatildeo
graacutefica (CAD CAM CAE) onde a precisatildeo dos modelos obtidos eacute muito importante Inicialmente
estudada por Matemaacuteticos como I J Schoenberg [Cob84] foi aplicada em sistemas CAD para a
modelaccedilatildeo na induacutestria Automoacutevel [Beacute83 Beacutez81 Bez68]
Figura 26 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modeloNURBS
2213 Digital Sculpting
Digital Sculpting eacute a adaptaccedilatildeo de teacutecnicas utilizadas para moldar materiais como o barro agrave
modelaccedilatildeo 3D Estas ferramentas permitem ao modelador empurrar puxar polir vincare
adicionar ou remover volume Perry et al [PF01] introduziram Kizamu um dos primeiros passos
na aacuterea do Digital Sculpting Os modelos satildeo representados no que eacute chamado de Adaptively Sam-
pled Distance Fields (ADF) [FPRJ00] que permite representar dados volumeacutetricos que tornam o
processo de Digital Sculpting possiacutevel
222 Ferramentas de Modelaccedilatildeo 3D
2221 Blender
O Blender [ble15a] eacute uma ferramenta profissional de modelaccedilatildeo de coacutedigo aberto desen-
volvida pela Blender Foundation Suporta uma grande variedade de primitivas geomeacutetricas in-
11
Estado da Arte e Trabalhos Relacionados
Figura 27 Interface da ferramenta Blender
cluiacutendo Polygon Meshes curvas de Bezier superfiacutecies NURBS Metaballs e Digital Sculpting
Esta destaca-se por ser gratuita e pela facilidade de criar extensotildees [ble15b] usando a API Python
existente [ble15c] que permite adicionar novas funcionalidades agrave ferramenta
2222 Autodesk Maya
Figura 28 Interface da ferramenta Autodesk Maya
O Autodesk Maya [Aut15b] eacute uma ferramenta de produccedilatildeo de conteuacutedo 3D utilizada nas induacutes-
trias do cinema televisatildeo videojogos e arquitetura Eacute de coacutedigo fechado e a respetiva utilizaccedilatildeo
requer que o utilizador possua uma licenccedila Tal como o Blender o Maya daacute aos modeladores
ferramentas para estes criarem objetos de uma forma interativa 28 Apesar de ser uma ferramenta
versaacutetil e capaz de satisfazer as necessidades de todas induacutestrias acima referidas o Autodesk
Maya tende a ser mais utilizado pela induacutestria do Cinema devido agrave vasta customizaccedilatildeo possiacutevel de
aspetos importantes para esta induacutestria como Animaccedilatildeo e VFX [Aut15c]
12
Estado da Arte e Trabalhos Relacionados
2223 Autodesk 3D Studio Max
O 3D Studio Max [Aut15a] eacute outra ferramenta da Autodesk em muitos aspetos semelhante
ao Maya No entanto o 3DS Max estaacute apenas disponiacutevel para maacutequinas de sistema operativo
Windows e sempre foi mais utilizado pela induacutestria dos videojogos para a criaccedilatildeo de modelos 3D
Tal como o Autodesk Maya este dispotildee de poderosos motores de renderizaccedilatildeo Ray Tracing
2224 Zbrush
O Zbrush [Pix15] eacute uma ferramenta de modelaccedilatildeo 3D baseada nos conceitos de Digital Mo-
delling Daacute ao artista muacuteltiplas Brushes que permitem manipular o objeto a ser definido com
paradigmas transportados de outras aacutereas artiacutesticas Pode tornar mais acessiacutevel para um utilizador
pouco experiente com alguns paradigmas da Computaccedilatildeo Graacutefica a modelaccedilatildeo de objetos com
consideraacutevel detalhe e liberdade artiacutestica [Spe11]
23 Sumaacuterio
Apoacutes o levantamento do estado da arte eacute possiacutevel constatar que as ferramentas de modelaccedilatildeo
manual satildeo a escolha de eleiccedilatildeo para contextos em que o modelador deseja o maior niacutevel controlo
possiacutevel sobre o objeto a ser produzido No entanto considerando ferramentas de modelaccedilatildeo
procedimental tem existido um esforccedilo por parte desta comunidade para tornar a correspondente
experiecircncia de utilizaccedilatildeo mais acessiacutevel a utilizadores pouco familiarizados com o funcionamento
do mesmo Por enquanto a utilizaccedilatildeo deste tipo de ferramentas ainda requer que o conteuacutedo
seja criado em ferramentas dedicadas completamente separadas das ferramentas tradicionais (ie
Maya Blender) essenciais para o trabalho artiacutestico levando a quebras no fluxo de trabalho
13
Estado da Arte e Trabalhos Relacionados
14
Capiacutetulo 3
Metodologia
Com os desenvolvimentos atuais na aacuterea de modelaccedilatildeo procedimental apresentados no capiacute-
tulo 2 eacute possiacutevel verificar que as soluccedilotildees de MP existentes permitem produzir variados tipos de
conteuacutedo tais como terrenos vegetaccedilatildeo edifiacutecios estradas e cidades por outro lado as respeti-
vas integraccedilotildees em ambientes de modelaccedilatildeo manual satildeo algo limitadas ou apenas disponiacuteveis em
ferramentas externas especializadas num uacutenico tipo de conteuacutedo
Da mesma forma como verificado em 21 foram efetuadas vaacuterias tentativas pela comunidade
envolvida em geraccedilatildeo procedimental no sentido a melhorar a interaccedilatildeo com ferramentas dedica-
das agrave geraccedilatildeo procedimental no entanto existe ainda uma grande margem para avanccedilo de uma
integraccedilatildeo geneacuterica destes processos numa ferramenta de modelaccedilatildeo manual Devido agrave falta de
soluccedilotildees que se integrem de forma transparente e acessiacutevel em ambientes de modelaccedilatildeo manual
pretende-se apresentar uma soluccedilatildeo com o objetivo de interligar as duas abordagens neste capiacute-
tulo Inicialmente seraacute apresentada em pormenor a arquitetura da soluccedilatildeo de seguida o protocolo
de comunicaccedilatildeo entre os dois ambientes de modelaccedilatildeo e finalmente seraacute proposto um meacutetodo de
trabalho no qual seraacute descrita a interaccedilatildeo ideal entre o modelador e a soluccedilatildeo proposta
31 Meacutetodo de Trabalho
Numa interaccedilatildeo ideal o modelador teria controlo absoluto sobre os meacutetodos de geraccedilatildeo proce-
dimental e seria possiacutevel modelar procedimentalmente sobre alteraccedilotildees manuais realizadas sobre
o objeto No entanto nem sempre eacute desejado esse niacutevel de controlo e interligaccedilatildeo entre as aborda-
gens Imaginando a modelaccedilatildeo de um edifiacutecio este eacute construiacutedo segundo meacutetodos procedimentais
e recebe como entrada um poliacutegono que delimita a fundaccedilatildeo assim como paracircmetros numeacutericos e
booleanos que definem a geometria resultante Depois de modelado procedimentalmente o objeto
eacute adicionado ao ambiente de modelaccedilatildeo manual onde o modelador pode realizar alteraccedilotildees em
detalhes na geometria ou mesmo alteraccedilotildees profundas na geometria do mesmo
15
Metodologia
Considerando uma situaccedilatildeo em que o modelador realizou alteraccedilotildees profundas na geometria
produzida como por exemplo a reparticcedilatildeo de uma das fachadas do edifiacutecio em trecircs fachadas
Assim que realizadas estas alteraccedilotildees o utilizador pretende alterar a altura do edifiacutecio alterando o
paracircmetro correspondente e requisitando uma atualizaccedilatildeo Para ser possiacutevel manter as alteraccedilotildees
realizadas manualmente e em simultacircneo respeitar as regras definidas pela geraccedilatildeo procedimen-
tal seria necessaacuterio converter estas alteraccedilotildees em regras possiacuteveis de definir no escopo do ambiente
de geraccedilatildeo procedimental
De qualquer das formas as alteraccedilotildees realizadas no ponto anterior podem simplesmente natildeo
fazer sentido apoacutes a aplicaccedilatildeo sobre o objeto que foi reproduzido seguindo as regras definias
por um procedimento Devido a esta limitaccedilatildeo eacute assumido que assim que o utilizador requisita
uma nova execuccedilatildeo de um procedimento o qual natildeo tem problemas em descartar as alteraccedilotildees
executadas manualmente sobre o objeto em questatildeo
Tendo em consideraccedilatildeo esta limitaccedilatildeo eacute possiacutevel estruturar um fluxo de trabalho que melhor
explore as vantagens e limitaccedilotildees de ambas as abordagens de geraccedilatildeo de conteuacutedo tridimensional
O utilizador tem uma panoacuteplia de conteuacutedos procedimentais ao seu dispor que podem ser definidas
via paracircmetros numeacutericos e geomeacutetricos O conteuacutedo eacute adicionado ao ambiente de modelaccedilatildeo ma-
nual e os paracircmetros podem ainda ser editados alterados ao custo de que as modificaccedilotildees manuais
realizadas sobre o objeto sejam descartadas
32 Metodologias de Interaccedilatildeo com o Utilizador
Em relaccedilatildeo agrave interaccedilatildeo com o utilizador foram estudadas trecircs abordagens para a interaccedilatildeo com
meacutetodos de geraccedilatildeo procedimental em ambiente de modelaccedilatildeo manual
321 Modificadores
O conceito de modificadores eacute jaacute utilizado em ambientes de modelaccedilatildeo manual eg no Blen-
der [Bap14 Ble15e] onde satildeo utilizados para realizar operaccedilotildees sobre objetos na cena sem destruir
a geometria subjacente apenas modificam a forma como os objetos satildeo percecionados pelo motor
de renderizaccedilatildeo Esta abordagem eacute uacutetil em situaccedilotildees onde o procedimento a ser executado en-
volve modificaccedilotildees sobre uma geometria base como tal permitindo realizar muacuteltiplas alteraccedilotildees
sobre um objeto podendo estas ser facilmente canceladas recuperando o objeto original No en-
tanto nem todos os recursos de geraccedilatildeo procedimental incidem sobre modificaccedilatildeo de geometria
Os meios de geraccedilatildeo procedimental em muitas situaccedilotildees produzem objetos e cenaacuterios uacutenicos e
independentes de qualquer geometria de entrada
322 Grafos
A abordagem de interaccedilatildeo via grafos eacute atualmente utilizada num ambiente de modelaccedilatildeo ma-
nual para a ediccedilatildeo de materiais [Ble15d] Tambeacutem chamada de Flow-Based Programming esta
16
Metodologia
abordagem permite apresentar ao utilizador os procedimentos como uma caixa negra com pos-
siacuteveis entradas e saiacutedas representadas como ligaccedilotildees de fluxo A correspondente utilizaccedilatildeo na
interaccedilatildeo com geraccedilatildeo procedimental pode permitir o encadeamento de muacuteltiplos procedimentos
No entanto a abordagem pode ser mais trabalhosa para o utilizador introduzindo um niacutevel de
interaccedilatildeo adicional para cada objeto introduzido na cena
323 Funccedilotildees
Esta abordagem disponibiliza ao utilizador cada recurso de geraccedilatildeo procedimental como uma
funccedilatildeo disponiacutevel a qualquer momento na interface da ferramenta de modelaccedilatildeo manual Aquando
da respetiva invocaccedilatildeo satildeo requisitados aos utilizadores os paracircmetros necessaacuterios agrave execuccedilatildeo
A abordagem em causa eacute potencialmente a mais faacutecil de adotar por parte dos utilizadores de
ferramentas de modelaccedilatildeo manual Devido agrave simplicidade na interaccedilatildeo assim como a reduzida
necessidade de tempo e recursos para a implementaccedilatildeo esta foi a abordagem de interaccedilatildeo utilizada
na soluccedilatildeo desenvolvida
33 Arquitetura da Soluccedilatildeo
Para abordar este problema eacute proposta a utilizaccedilatildeo de duas aplicaccedilotildees jaacute presentes no mer-
cado Uma aplicaccedilatildeo dedicada agrave modelaccedilatildeo procedimental e uma aplicaccedilatildeo de modelaccedilatildeo manual
Foi escolhida esta abordagem na medida em que eacute possiacutevel utilizar duas aplicaccedilotildees jaacute existentes
sendo possiacutevel dessa forma aproveitar os pontos fortes de cada soluccedilatildeo com o intuito de otimi-
zar o processo de criaccedilatildeo de novos cenaacuterios e conteuacutedo tridimensional Esta abordagem pode ser
representada como uma soluccedilatildeo estruturada numa arquitetura Cliente-Servidor em que a aplica-
ccedilatildeo de geraccedilatildeo procedimental eacute capaz de fornecer serviccedilos de geraccedilatildeo de conteuacutedo a um ou mais
clientes de modelaccedilatildeo Esta abordagem interliga as duas aplicaccedilotildees atraveacutes de um protocolo de
comunicaccedilatildeo Este permite ao utilizador da ferramenta de modelaccedilatildeo manual requisitar a produ-
ccedilatildeo de conteuacutedo seguindo os valores impostos pelo utilizador nos paracircmetros do procedimento
requisitado O protocolo eacute descrito em maior detalhe na secccedilatildeo 34
331 Vantagens
Faacutecil integraccedilatildeo em diferentes plataformas Devido agrave arquitetura ser baseada na comunicaccedilatildeo
entre duas aplicaccedilotildees por um protocolo de comunicaccedilatildeo geneacuterico eacute com alguma facili-
dade que se realiza a interligaccedilatildeo com diferentes soluccedilotildees de geraccedilatildeo procedimental ou de
modelaccedilatildeo manual Sendo assim possiacutevel a expansatildeo para novos ambientes de modelaccedilatildeo
manual ou mesmo introduzir novas soluccedilotildees de geraccedilatildeo procedimental
Escalabilidade A arquitetura proposta poderaacute permitir que esta seja implementada de modo a que
um servidor central de geraccedilatildeo procedimental sirva por exemplo num ambiente empresa-
rial como um repositoacuterio de recursos de geraccedilatildeo de conteuacutedos desta forma permitindo
17
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
iv
Agradecimentos
Comeccedilo por agradecer aos meus orientadores o Professor Rui Pedro Amaral Rodrigues PedroAmorim Brandatildeo da Silva e o Joatildeo Tiago Neto Jacob pelo seu trabalho conselhos e apoio semos quais esta dissertaccedilatildeo natildeo seria concluiacuteda Agradeccedilo tambeacutem ao Professor Pedro Cardoso daFaculdade de Belas Artes da Universidade do Porto pelo apoio dado no decorrer desta dissertaccedilatildeo
Agradeccedilo a todos os membros da Faculdade de Engenharia da Universidade do Porto e doDepartamento de Engenharia Informaacutetica e Computaccedilatildeo por me motivarem e ensinarem durantedestes anos
Agradeccedilo em particular ao meu colega e amigo Joatildeo Almeida pelo apoio que me deu na revisatildeodeste documento Finalmente gostaria de agradecer aos meus paiacutes irmatildeo amigos colegas decurso e familiares pelo apoio que me deram ao longo do meu percurso acadeacutemico
Rui Miguel Barros Gonccedilalves
v
vi
ldquoWhat we usually consider as impossible are simply engineering problemstherersquos no law of physics preventing themrdquo
Dr Michio Kaku
vii
viii
Conteuacutedo
1 Introduccedilatildeo 111 Contexto 212 Motivaccedilatildeo e Problema 213 Objetivos 314 Estrutura do documento 3
2 Estado da Arte e Trabalhos Relacionados 521 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais 5
211 Teacutecnicas Sketch-based 5212 Editores Visuais 8213 Modelaccedilatildeo Procedimental Invertida 9
22 Modelaccedilatildeo 3D Manual 10221 Teacutecnicas de Modelaccedilatildeo Manual 10222 Ferramentas de Modelaccedilatildeo 3D 11
23 Sumaacuterio 13
3 Metodologia 1531 Meacutetodo de Trabalho 1532 Metodologias de Interaccedilatildeo com o Utilizador 16
321 Modificadores 16322 Grafos 16323 Funccedilotildees 17
33 Arquitetura da Soluccedilatildeo 17331 Vantagens 17332 Desvantagens 18
34 Protocolo de Comunicaccedilatildeo 19
4 Implementaccedilatildeo 2141 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual 2142 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental 2243 Comunicaccedilatildeo 2344 Construccedilatildeo da Interface 2545 Execuccedilatildeo 26
5 Teste da Soluccedilatildeo e Resultados Obtidos 3151 Metodologia de Teste 3152 Resultados 36
ix
CONTEUacuteDO
6 Conclusotildees e Trabalho Futuro 3961 Trabalho Futuro 39
Referecircncias 41
A Mensagens JSON 47A1 JSON de Pedido de Abertura do Projeto Urban 47A2 JSON de Informaccedilatildeo do Projeto Urban 47A3 Exemplo de Pedido para Gerar um Grafo 49A4 Exemplo de Resposta de Erro do Servidor 50
B Principais Grafos do Projeto Urban 51
C Cenaacuterios Resultantes dos Testes com Utilizadores 55
x
Lista de Figuras
11 Captura de ecratilde do viacutedeo jogo Crysis 3 da Electronic Arts 2
21 Procedural sketching of virtual worlds por Smelik et al [STdKB10] 622 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et
al [IOI06b IOI06a] 723 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch 824 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13] 925 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14] 1026 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modelo
NURBS 1127 Interface da ferramenta Blender 1228 Interface da ferramenta Autodesk Maya 12
31 Diagrama do sistema proposto 18
41 Editor Construct em execuccedilatildeo 2242 Grafo exemplo e respetiva geometria produzida 2343 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct 2444 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct
a abrir 2445 Barra de ferramentas depois de aberto um projeto 2646 JSON enviado ao servidor para a execuccedilatildeo de um grafo 2647 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base 2748 Edifiacutecio depois de adicionado agrave cena 2749 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores 28410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular 28411 Custom Properties de um objeto produzido por um grafo Cube 29
51 Cenaacuterio requisitado aos utilizadores 3152 Exemplos de resultados possiacuteveis do grafo Building 3253 Exemplo de resultado do grafo Window 3354 Exemplo de resultado do grafo Door 3355 Exemplo de resultado do grafo CityStreets 3456 Cursor 3D do Blender 36
B1 Grafo Building como visto no editor Construct 51B2 Grafo CityStreets como visto no editor Construct 52B3 Grafo Window como visto no editor Construct 52B4 Grafo Door como visto no editor Construct 53
xi
LISTA DE FIGURAS
B5 Grafo DetailedRoof como visto no editor Construct 53
C1 Cenaacuterio criado pelo utilizador 3 55C2 Cenaacuterio criado pelo utilizador 4 56
xii
Lista de Tabelas
41 Estatiacutesticas dos principais foacuteruns 2242 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender 25
51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e otempo utilizado para construir o cenaacuterio utilizando o add-on desenvolvido 37
52 Resultados da avaliaccedilatildeo de usabilidade do sistema 37
xiii
LISTA DE TABELAS
xiv
Abreviaturas e Siacutembolos
API Application Programming InterfaceCAD Computer-Aided DesignCASE Computer-Aided Software EngineeringCGI Computer-Generated ImageJSON JavaScript Object NotationMP Modelaccedilatildeo ProcedimentalGP Geraccedilatildeo ProcedimentalMM Modelaccedilatildeo ManualSUS System Usability ScaleTCP Transmission Control Protocol
xv
Capiacutetulo 1
Introduccedilatildeo
A criaccedilatildeo de ambientes virtuais eacute um toacutepico muito relevante em computaccedilatildeo graacutefica e reali-
dade virtual tendo aplicaccedilotildees na induacutestria do entretenimento para a produccedilatildeo filmes e videojogos
entre outros Na induacutestria do cinema estes ambientes virtuais satildeo utilizados para criar imagens
impossiacuteveis de reproduzir atraveacutes de meios praacuteticos Na induacutestria dos videojogos cada vez mais
encontramos jogos em ambientes de maior dimensatildeo e com um elevado niacutevel de detalhe (Figura
11)
Em modelaccedilatildeo a abordagem tradicional eacute a de Modelaccedilatildeo Manual que permite ao artista
controlo completo e fino do objeto a ser criado No que toca agrave criaccedilatildeo de cenaacuterios de elevadas
dimensotildees como montanhas cidades estradas e vegetaccedilatildeo a abordagem tradicional torna-se cada
vez menos viaacutevel A introduccedilatildeo de meacutetodos procedimentais na geraccedilatildeo destes conteuacutedos permite
produzir resultados de alta qualidade com alguma facilidade produzindo cenaacuterios numa fraccedilatildeo do
tempo e do custo correspondentes agrave respetiva produccedilatildeo por meio de modelaccedilatildeo manual
Apesar do grande impacto positivo que esta abordagem trouxe para a induacutestria de um ponto
de vista artiacutestico nem sempre o resultado eacute o mais desejado desta forma podendo necessitar
da introduccedilatildeo de pormenores e alteraccedilotildees finas agrave respetiva geometria para produzir um resultado
uacutenico e mais proacuteximo da visatildeo artiacutestica do criador Para tal tecircm sido desenvolvidas teacutecnicas
para uma interaccedilatildeo mais intuitiva com a modelaccedilatildeo procedimental tentado dar ao modelador um
melhor controlo sobre os meacutetodos automatizados que lhes estatildeo subjacentes natildeo possuindo ainda
o niacutevel de controlo fino que uma ferramenta de modelaccedilatildeo manual pode oferecer
1
Introduccedilatildeo
Figura 11 Captura de ecratilde do viacutedeo jogo Crysis 3 da Electronic Arts
11 Contexto
Esta dissertaccedilatildeo insere-se na aacuterea da computaccedilatildeo graacutefica mais especificamente na aacuterea da mo-
delaccedilatildeo tridimensional geraccedilatildeo procedimental de modelos 3D e interaccedilatildeo com os mesmos Estas
aacutereas intersectam-se em rumo a uma melhor interaccedilatildeo com recursos de geraccedilatildeo procedimental
num ambiente de modelaccedilatildeo manual
Esta dissertaccedilatildeo foi realizada na Faculdade de Engenharia da Universidade do Porto no Labo-
ratoacuterio de IampD de Computaccedilatildeo Graacutefica Interaccedilatildeo e Jogos
12 Motivaccedilatildeo e Problema
Os avanccedilos no desenvolvimento de hardware e software resultam numa necessidade de con-
teuacutedo tridimensional maior e mais detalhado criando uma maior carga nas equipas que os pro-
duzem Como mencionado previamente a utilizaccedilatildeo de modelaccedilatildeo procedimental para a criaccedilatildeo
raacutepida de ambientes tridimensionais eacute altamente apelativa para a induacutestria permitindo poupar
tempo e dinheiro comparativamente a uma abordagem manual
No entanto esta abordagem dificulta ao modelador a introduccedilatildeo de pormenores pois os meacute-
todos procedimentais satildeo definidos tipicamente por um conjunto de regras e paracircmetros de uma
forma natildeo intuitiva ou de controlo limitado A simples modificaccedilatildeo de um paracircmetro pode criar
uma reaccedilatildeo em cadeia de modificaccedilotildees que alteram por completo o modelo gerado Eacute assim ape-
lativo encontrar um meacutetodo que melhor aproveite as vantagens das duas abordagens permitindo
aos modeladores uma produccedilatildeo de conteuacutedo tridimensional mais raacutepida e controlada
2
Introduccedilatildeo
13 Objetivos
O objetivo principal deste trabalho eacute desenvolver uma soluccedilatildeo que melhor aproveite as vanta-
gens das duas principais abordagens agrave modelaccedilatildeo 3D para tal eacute possiacutevel identificar os seguintes
objetivos especiacuteficos
bull Investigar o estado da arte da aacuterea da modelaccedilatildeo procedimental e modelaccedilatildeo manual em
particular os avanccedilos realizados na interaccedilatildeo com os meacutetodos utilizados em modelaccedilatildeo pro-
cedimental
bull Estudar as metodologias possiacuteveis para abordar o problema
bull Desenvolver uma soluccedilatildeo utilizando uma abordagem possiacutevel com os recursos disponiacuteveis
bull Testar a soluccedilatildeo com utilizadores proficientes em modelaccedilatildeo de conteuacutedo 3D
14 Estrutura do documento
Esta dissertaccedilatildeo encontra-se dividida em 6 capiacutetulos anexos e referecircncias O capiacutetulo pre-
sente consiste numa descriccedilatildeo do problema da motivaccedilatildeo e dos objetivos propostos para a cor-
respondente realizaccedilatildeo No capiacutetulo 2 eacute realizado um levantamento do estado da arte nas aacutereas
da modelaccedilatildeo procedimental e modelaccedilatildeo manual em especial os avanccedilos realizados na interaccedilatildeo
com os meacutetodos utilizados em modelaccedilatildeo procedimental No capiacutetulo 3 satildeo discutidas as meto-
dologias estudadas para a melhor interaccedilatildeo entre as duas abordagens agrave modelaccedilatildeo sendo tambeacutem
apresentada com maior detalhe a metodologia a ser utilizada
No capiacutetulo 4 satildeo descritos alguns detalhes de implementaccedilatildeo da soluccedilatildeo desenvolvida base-
ada na metodologia discutida no capiacutetulo 3
No capiacutetulo 5 eacute apresentada a metodologia de teste utilizada para avaliar a soluccedilatildeo desenvol-
vida sendo tambeacutem apresentados os resultados obtidos
No capiacutetulo 6 o final da dissertaccedilatildeo satildeo resumidas algumas constataccedilotildees e conclusotildees rea-
lizadas sobre esta dissertaccedilatildeo Eacute efetuada tambeacutem uma listagem de alguns pontos para potencial
trabalho futuro
3
Introduccedilatildeo
4
Capiacutetulo 2
Estado da Arte e TrabalhosRelacionados
Neste capiacutetulo seraacute realizada uma revisatildeo bibliograacutefica que visa apresentar todos os avanccedilos
realizados nas aacutereas da interaccedilatildeo com os meacutetodos de geraccedilatildeo procedimental Seratildeo apresentados
os tipos de conteuacutedo passiacuteveis de serem produzidos por meio destes meacutetodos bem como as teacutec-
nicas utilizadas para a respetiva interaccedilatildeo e geraccedilatildeo Iratildeo tambeacutem ser apresentadas as abordagens
existentes para uma modelaccedilatildeo manual e as ferramentas existentes no mercado
21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundosvirtuais
O paradigma de interaccedilatildeo com meacutetodos de geraccedilatildeo procedimental eacute tradicionalmente funci-
onal Cada procedimento pode ser considerado uma caixa negra de operaccedilotildees que dependendo
de certos valores de entrada produz um ou mais resultados A interaccedilatildeo com estes nem sempre
eacute a mais intuitiva pois para atingir o resultado desejado envolve em repetidas tentativa e erro por
parte do utilizador No entanto em anos recentes tem existido um avanccedilo consideraacutevel nesta aacuterea
tentado conceder ao utilizador maior controlo sobre os meacutetodos de geraccedilatildeo procedimental com
abordagens como Sketch-based editores visuais e Modelaccedilatildeo Procedimental Invertida
211 Teacutecnicas Sketch-based
Esta abordagem tenta aproximar o tipo de interaccedilatildeo com que os principais utilizadores de
meacutetodos de Modelaccedilatildeo Procedimental estatildeo familiarizados Noccedilotildees como Brushes e Sketches satildeo
alguns dos conceitos mais populares entre designers profissionais
5
Estado da Arte e Trabalhos Relacionados
2111 Terrenos
De Carpentier et al [dCB09] propuseram um meacutetodo de ediccedilatildeo de terrenos no qual eacute dada ao
utilizador a possibilidade de alterar o heightfield atraveacutes de procedural brushes tentando combinar
a interaccedilatildeo manual localizada com a modificaccedilatildeo da parametrizaccedilatildeo por completo de heightfields
Esta abordagem eacute capaz de produzir alteraccedilotildees a tempo real graccedilas agrave respetiva implementaccedilatildeo
com shaders
Smelik et al [STdKB10] seguindo a respetiva proposta de modelaccedilatildeo de mundos virtuais
[STdKB08] propotildeem a utilizaccedilatildeo da abordagem Procedural sketching e demonstram-na num
protoacutetipo intitulado de SketchaWorld Esta abordagem eacute dividida em dois principais modos de
interaccedilatildeo (Figura 21) Landscape Mode e Feature Mode
Figura 21 Procedural sketching of virtual worlds por Smelik et al [STdKB10]
No primeiro o utilizador interage com uma vista top-down do terreno divido em grelha e eacute
capaz de definir a informaccedilatildeo geoloacutegica de cada ceacutelula atraveacutes do uso de Brushes Em Feature
Mode o utilizador manipula pontos de controlo correspondendo a vetores ou poliacutegonos que deli-
mitam a localizaccedilatildeo de cidades rios e vegetaccedilatildeo A ferramenta fornece feedback da construccedilatildeo do
terreno a um ritmo consideraacutevel para uma interaccedilatildeo fluida Esta tambeacutem dispotildee de funcionalida-
des como undo e redo para uma melhorar a interaccedilatildeo entre o utilizador e a ferramenta permitindo
assim a introduccedilatildeo de alteraccedilotildees e caso estas natildeo sejam desejadas pelo utilizador estas podem
ser desfeitas rapidamente Gain et al [GMSe09] propotildeem uma soluccedilatildeo que permite ao utilizador
esboccedilar as silhuetas e limites de corpos montanhosos a serem gerados
6
Estado da Arte e Trabalhos Relacionados
2112 Estradas
Num esforccedilo de melhorar a interaccedilatildeo com path layouts Singh et al [SM08] desenvolveram a
ferramenta Drive que permite a conceptualizaccedilatildeo de redes rodoviaacuterias tridimensionais por meio
de esboccedilos que satildeo posteriormente aproximados a clotoacuteides (Curvas em que o raio varia line-
armente) Com esta abordagem eacute possiacutevel produzir itineraacuterios em que as transiccedilotildees entre raios
de curvatura satildeo lineares tornando-os assim adequados para a conduccedilatildeo A ferramenta tambeacutem
introduz Terrain sensitive sketching que por meios automaacuteticos coloca sinalizaccedilatildeo no percurso e
vegetaccedilatildeo nas redondezas
2113 Vegetaccedilatildeo
Figura 22 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et al[IOI06b IOI06a]
O trabalho de Ijiri et al [IOI06b IOI06a] apresenta uma teacutecnica que atraveacutes de traccedilados defi-
nidos pelo utilizador (Figura 22) permite a manipulaccedilatildeo da direccedilatildeo de crescimento de vegetaccedilatildeo
produzida por L-Systems uma abordagem jaacute muito estudada para a criaccedilatildeo de vegetaccedilatildeo pro-
posta por Lindenmayer [Lin68] como um tipo de gramaacutetica formal capaz de representar padrotildees
e geometria fractal existente na vegetaccedilatildeo Em 1988 foi proposto por Prusinkiewicz [PLH88] a
utilizaccedilatildeo de L-systems para a modelaccedilatildeo de vegetaccedilatildeo Ao longo das ultimas deacutecadas tecircm sido
realizados avanccedilos consideraacuteveis na produccedilatildeo de vegetaccedilatildeo realiacutestica [WP95] e a respetiva inte-
raccedilatildeo com o seu meio ambiente [MP96 Pru00] tentado assim produzir vegetaccedilatildeo que melhor
simule o comportamento fiacutesico e bioloacutegico de vegetaccedilatildeo real
Mais recentemente o trabalho de Palubicky et al [PHL+09] foi expandido e transportado
para uma aplicaccedilatildeo para dispositivos iPad em que o modelador tem um controlo fino sobre o
crescimento de uma aacutervore Utilizando o conceito de tree self-organization Longay et al criaram
7
Estado da Arte e Trabalhos Relacionados
a ferramenta TreeSketch 23 que estimula a competiccedilatildeo entre os ramos de uma aacutervore por espaccedilo
e luz dentro dos paracircmetros e inputs visuais dados pelo utilizador [LRBP12]
Figura 23 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch
212 Editores Visuais
Numa tentativa de melhorar a interaccedilatildeo com modelaccedilatildeo procedimental baseada em gramaacuteticas
[WWSR03 MWH+06] Lipp et al propuseram uma abordagem que permite a manipulaccedilatildeo direta
do resultado produzido por uma gramaacutetica O utilizador pode manipular diretamente no objeto as
respetivas dimensotildees e configuraccedilotildees [LWW08]
Mais recentemente Krecklau et al [KK12] introduziram uma abordagem que permite a ge-
raccedilatildeo de cenas a partir de primitivas de alto niacutevel e a correspondente manipulaccedilatildeo por interaccedilatildeo
direta na cena consequentemente permitindo a utilizadores menos experientes a utilizaccedilatildeo de
gramaacuteticas procedimentais complexas sem a necessidade de interaccedilatildeo textual com as mesmas
2121 Visual Node Based
Editores Visual Node Based satildeo utilizados em muitas aplicaccedilotildees comercias como meio de
dar ao utilizador feedback visual do fluxo de informaccedilatildeo Encontra-se em editores de shaders
[Hol15 Aut15b] editores de animaccedilotildees [Tec15] e em editores de texturas [Cod15] A vasta uti-
lizaccedilatildeo da teacutecnica na aacuterea de produccedilatildeo de conteuacutedo 3D por utilizadores com pouca experiecircncia
de programaccedilatildeo levou a que investigadores a utilizassem para a especificaccedilatildeo de gramaacuteticas de
produccedilatildeo
Nesse contexto Patow [Pat12] desenvolveu uma soluccedilatildeo para a construccedilatildeo e manipulaccedilatildeo de
gramaacuteticas por meio de um editor visual onde noacutes que representam operaccedilotildees geomeacutetricas dos
correspondentes antecessores transmitem o resultado aos noacutes sucessores Na mesma publica-
ccedilatildeo Patow realccedila a importacircncia que esta abordagem acarreta para a modelaccedilatildeo procedimental de
edifiacutecios e admite que existe ainda muito potencial por explorar
8
Estado da Arte e Trabalhos Relacionados
Mais recentemente o trabalho de Silva et al [SMBC13] apresenta uma metodologia de edi-
ccedilatildeo em que grafos podem ser encapsulados em noacutes designados Component capazes de representar
construccedilotildees complexas Os noacutes podem ser facilmente introduzidos noutros grafos e editados por
meio de filtros de fluxo colocados nas arestas ou por restriccedilotildees que auxiliam a especificar a utili-
zaccedilatildeo dos noacutes (Figura 24)
Figura 24 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13]
213 Modelaccedilatildeo Procedimental Invertida
Inverse PM eacute uma teacutecnica em que um dado modelo de entrada eacute aproximado a uma represen-
taccedilatildeo procedimental
Aliaga et al [ARB07] apresenta a reconstruccedilatildeo de edifiacutecios por meio de fotografias Nesta
abordagem o utilizador define os limites das fachadas do edifiacutecio criando uma representaccedilatildeo
minimalista De seguida eacute automaticamente aproximada uma gramaacutetica que melhor representa
o edifiacutecio em questatildeo Com os trabalhos de Šrsquotava et al [ŠBM+10] na parametrizaccedilatildeo de arte
vetorial 2D e de Mitra et al [MGP06] em encontrar simetrias em objetos tridimensionais Bokeloh
et al [BWS10] aplica estes conceitos para a descoberta de simetrias nos objetos e a consequente
aproximaccedilatildeo de gramaacuteticas que definam o objeto em questatildeo
As abordagens atuais focam-se em Modelaccedilatildeo invertida de ambientes urbanos no entanto
Vanegas et al [VGDA+12] demonstram uma metodologia de aproximaccedilatildeo de gramaacuteticas capazes
de representar para aleacutem de edifiacutecios sistemas complexos de vegetaccedilatildeo aproximados a um objeto
jaacute existente
9
Estado da Arte e Trabalhos Relacionados
22 Modelaccedilatildeo 3D Manual
Para a produccedilatildeo de objetos tridimensionais os modeladores utilizam ferramentas dedicadas
que lhes datildeo um controlo total sobre o modelo a ser construiacutedo Estes variam em metaacuteforas de
interface e em puacuteblico alvo Nesta secccedilatildeo vatildeo ser abordadas as teacutecnicas de modelaccedilatildeo atualmente
utilizadas por estas ferramentas e seratildeo listadas as ferramentas existentes no mercado e as respeti-
vas funcionalidades principais
221 Teacutecnicas de Modelaccedilatildeo Manual
2211 Polygon Modelling
Polygon Modelling eacute uma abordagem para a representaccedilatildeo de superfiacutecies tridimensionais utili-
zando poliacutegonos estes satildeo representados por veacutertices e arestas e em grupos formam uma Polygon
Mesh que pode ser armazenada de muacuteltiplas formas [TM06 Bau72 Smi06] Eacute possiacutevel criar ma-
lhas veacutertice a veacutertice manualmente No entanto eacute comum a respetiva manipulaccedilatildeo em software
graacutefico concedendo aos modeladores ferramentas interativas como Blender Autodesk Maya e 3D
Studio Max
Figura 25 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14]
Uma das abordagens mais comuns eacute denominada Box Modelling na qual uma forma geomeacute-
trica considerada uma primitiva (ie cubo esfera cilindro) eacute esculpida iterativamente por pas-
sos de subdivisatildeo do objeto e subsequente manipulaccedilatildeo da geometria ateacute se obter o objeto final
[Jon02 sub14] A figura 25 demonstra da teacutecnica Box Modelling para a modelaccedilatildeo de uma face
Esta abordagem pode ser considerada uma abordagem Subtrativa pois eacute atraveacutes da reduccedilatildeo de um
objeto base que eacute obtido o objeto desejado
10
Estado da Arte e Trabalhos Relacionados
O polygon modelling caracteriza-se pelo controlo direto sobre a colocaccedilatildeo de cada veacutertice de
uma superfiacutecie permitindo dessa forma um controlo fino e preciso sobre o resultado a produzir
2212 NURBS
NURBS ou Non-uniform rational B-spline eacute uma generalizaccedilatildeo de B-Splines e Curvas de Beacute-
zier [KR79 Cab92] um modelo matemaacutetico usado para representar curvas e superfiacutecies com
grande precisatildeo e flexibilidade (Figura 26) Eacute principalmente utilizado em aacutereas da computaccedilatildeo
graacutefica (CAD CAM CAE) onde a precisatildeo dos modelos obtidos eacute muito importante Inicialmente
estudada por Matemaacuteticos como I J Schoenberg [Cob84] foi aplicada em sistemas CAD para a
modelaccedilatildeo na induacutestria Automoacutevel [Beacute83 Beacutez81 Bez68]
Figura 26 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modeloNURBS
2213 Digital Sculpting
Digital Sculpting eacute a adaptaccedilatildeo de teacutecnicas utilizadas para moldar materiais como o barro agrave
modelaccedilatildeo 3D Estas ferramentas permitem ao modelador empurrar puxar polir vincare
adicionar ou remover volume Perry et al [PF01] introduziram Kizamu um dos primeiros passos
na aacuterea do Digital Sculpting Os modelos satildeo representados no que eacute chamado de Adaptively Sam-
pled Distance Fields (ADF) [FPRJ00] que permite representar dados volumeacutetricos que tornam o
processo de Digital Sculpting possiacutevel
222 Ferramentas de Modelaccedilatildeo 3D
2221 Blender
O Blender [ble15a] eacute uma ferramenta profissional de modelaccedilatildeo de coacutedigo aberto desen-
volvida pela Blender Foundation Suporta uma grande variedade de primitivas geomeacutetricas in-
11
Estado da Arte e Trabalhos Relacionados
Figura 27 Interface da ferramenta Blender
cluiacutendo Polygon Meshes curvas de Bezier superfiacutecies NURBS Metaballs e Digital Sculpting
Esta destaca-se por ser gratuita e pela facilidade de criar extensotildees [ble15b] usando a API Python
existente [ble15c] que permite adicionar novas funcionalidades agrave ferramenta
2222 Autodesk Maya
Figura 28 Interface da ferramenta Autodesk Maya
O Autodesk Maya [Aut15b] eacute uma ferramenta de produccedilatildeo de conteuacutedo 3D utilizada nas induacutes-
trias do cinema televisatildeo videojogos e arquitetura Eacute de coacutedigo fechado e a respetiva utilizaccedilatildeo
requer que o utilizador possua uma licenccedila Tal como o Blender o Maya daacute aos modeladores
ferramentas para estes criarem objetos de uma forma interativa 28 Apesar de ser uma ferramenta
versaacutetil e capaz de satisfazer as necessidades de todas induacutestrias acima referidas o Autodesk
Maya tende a ser mais utilizado pela induacutestria do Cinema devido agrave vasta customizaccedilatildeo possiacutevel de
aspetos importantes para esta induacutestria como Animaccedilatildeo e VFX [Aut15c]
12
Estado da Arte e Trabalhos Relacionados
2223 Autodesk 3D Studio Max
O 3D Studio Max [Aut15a] eacute outra ferramenta da Autodesk em muitos aspetos semelhante
ao Maya No entanto o 3DS Max estaacute apenas disponiacutevel para maacutequinas de sistema operativo
Windows e sempre foi mais utilizado pela induacutestria dos videojogos para a criaccedilatildeo de modelos 3D
Tal como o Autodesk Maya este dispotildee de poderosos motores de renderizaccedilatildeo Ray Tracing
2224 Zbrush
O Zbrush [Pix15] eacute uma ferramenta de modelaccedilatildeo 3D baseada nos conceitos de Digital Mo-
delling Daacute ao artista muacuteltiplas Brushes que permitem manipular o objeto a ser definido com
paradigmas transportados de outras aacutereas artiacutesticas Pode tornar mais acessiacutevel para um utilizador
pouco experiente com alguns paradigmas da Computaccedilatildeo Graacutefica a modelaccedilatildeo de objetos com
consideraacutevel detalhe e liberdade artiacutestica [Spe11]
23 Sumaacuterio
Apoacutes o levantamento do estado da arte eacute possiacutevel constatar que as ferramentas de modelaccedilatildeo
manual satildeo a escolha de eleiccedilatildeo para contextos em que o modelador deseja o maior niacutevel controlo
possiacutevel sobre o objeto a ser produzido No entanto considerando ferramentas de modelaccedilatildeo
procedimental tem existido um esforccedilo por parte desta comunidade para tornar a correspondente
experiecircncia de utilizaccedilatildeo mais acessiacutevel a utilizadores pouco familiarizados com o funcionamento
do mesmo Por enquanto a utilizaccedilatildeo deste tipo de ferramentas ainda requer que o conteuacutedo
seja criado em ferramentas dedicadas completamente separadas das ferramentas tradicionais (ie
Maya Blender) essenciais para o trabalho artiacutestico levando a quebras no fluxo de trabalho
13
Estado da Arte e Trabalhos Relacionados
14
Capiacutetulo 3
Metodologia
Com os desenvolvimentos atuais na aacuterea de modelaccedilatildeo procedimental apresentados no capiacute-
tulo 2 eacute possiacutevel verificar que as soluccedilotildees de MP existentes permitem produzir variados tipos de
conteuacutedo tais como terrenos vegetaccedilatildeo edifiacutecios estradas e cidades por outro lado as respeti-
vas integraccedilotildees em ambientes de modelaccedilatildeo manual satildeo algo limitadas ou apenas disponiacuteveis em
ferramentas externas especializadas num uacutenico tipo de conteuacutedo
Da mesma forma como verificado em 21 foram efetuadas vaacuterias tentativas pela comunidade
envolvida em geraccedilatildeo procedimental no sentido a melhorar a interaccedilatildeo com ferramentas dedica-
das agrave geraccedilatildeo procedimental no entanto existe ainda uma grande margem para avanccedilo de uma
integraccedilatildeo geneacuterica destes processos numa ferramenta de modelaccedilatildeo manual Devido agrave falta de
soluccedilotildees que se integrem de forma transparente e acessiacutevel em ambientes de modelaccedilatildeo manual
pretende-se apresentar uma soluccedilatildeo com o objetivo de interligar as duas abordagens neste capiacute-
tulo Inicialmente seraacute apresentada em pormenor a arquitetura da soluccedilatildeo de seguida o protocolo
de comunicaccedilatildeo entre os dois ambientes de modelaccedilatildeo e finalmente seraacute proposto um meacutetodo de
trabalho no qual seraacute descrita a interaccedilatildeo ideal entre o modelador e a soluccedilatildeo proposta
31 Meacutetodo de Trabalho
Numa interaccedilatildeo ideal o modelador teria controlo absoluto sobre os meacutetodos de geraccedilatildeo proce-
dimental e seria possiacutevel modelar procedimentalmente sobre alteraccedilotildees manuais realizadas sobre
o objeto No entanto nem sempre eacute desejado esse niacutevel de controlo e interligaccedilatildeo entre as aborda-
gens Imaginando a modelaccedilatildeo de um edifiacutecio este eacute construiacutedo segundo meacutetodos procedimentais
e recebe como entrada um poliacutegono que delimita a fundaccedilatildeo assim como paracircmetros numeacutericos e
booleanos que definem a geometria resultante Depois de modelado procedimentalmente o objeto
eacute adicionado ao ambiente de modelaccedilatildeo manual onde o modelador pode realizar alteraccedilotildees em
detalhes na geometria ou mesmo alteraccedilotildees profundas na geometria do mesmo
15
Metodologia
Considerando uma situaccedilatildeo em que o modelador realizou alteraccedilotildees profundas na geometria
produzida como por exemplo a reparticcedilatildeo de uma das fachadas do edifiacutecio em trecircs fachadas
Assim que realizadas estas alteraccedilotildees o utilizador pretende alterar a altura do edifiacutecio alterando o
paracircmetro correspondente e requisitando uma atualizaccedilatildeo Para ser possiacutevel manter as alteraccedilotildees
realizadas manualmente e em simultacircneo respeitar as regras definidas pela geraccedilatildeo procedimen-
tal seria necessaacuterio converter estas alteraccedilotildees em regras possiacuteveis de definir no escopo do ambiente
de geraccedilatildeo procedimental
De qualquer das formas as alteraccedilotildees realizadas no ponto anterior podem simplesmente natildeo
fazer sentido apoacutes a aplicaccedilatildeo sobre o objeto que foi reproduzido seguindo as regras definias
por um procedimento Devido a esta limitaccedilatildeo eacute assumido que assim que o utilizador requisita
uma nova execuccedilatildeo de um procedimento o qual natildeo tem problemas em descartar as alteraccedilotildees
executadas manualmente sobre o objeto em questatildeo
Tendo em consideraccedilatildeo esta limitaccedilatildeo eacute possiacutevel estruturar um fluxo de trabalho que melhor
explore as vantagens e limitaccedilotildees de ambas as abordagens de geraccedilatildeo de conteuacutedo tridimensional
O utilizador tem uma panoacuteplia de conteuacutedos procedimentais ao seu dispor que podem ser definidas
via paracircmetros numeacutericos e geomeacutetricos O conteuacutedo eacute adicionado ao ambiente de modelaccedilatildeo ma-
nual e os paracircmetros podem ainda ser editados alterados ao custo de que as modificaccedilotildees manuais
realizadas sobre o objeto sejam descartadas
32 Metodologias de Interaccedilatildeo com o Utilizador
Em relaccedilatildeo agrave interaccedilatildeo com o utilizador foram estudadas trecircs abordagens para a interaccedilatildeo com
meacutetodos de geraccedilatildeo procedimental em ambiente de modelaccedilatildeo manual
321 Modificadores
O conceito de modificadores eacute jaacute utilizado em ambientes de modelaccedilatildeo manual eg no Blen-
der [Bap14 Ble15e] onde satildeo utilizados para realizar operaccedilotildees sobre objetos na cena sem destruir
a geometria subjacente apenas modificam a forma como os objetos satildeo percecionados pelo motor
de renderizaccedilatildeo Esta abordagem eacute uacutetil em situaccedilotildees onde o procedimento a ser executado en-
volve modificaccedilotildees sobre uma geometria base como tal permitindo realizar muacuteltiplas alteraccedilotildees
sobre um objeto podendo estas ser facilmente canceladas recuperando o objeto original No en-
tanto nem todos os recursos de geraccedilatildeo procedimental incidem sobre modificaccedilatildeo de geometria
Os meios de geraccedilatildeo procedimental em muitas situaccedilotildees produzem objetos e cenaacuterios uacutenicos e
independentes de qualquer geometria de entrada
322 Grafos
A abordagem de interaccedilatildeo via grafos eacute atualmente utilizada num ambiente de modelaccedilatildeo ma-
nual para a ediccedilatildeo de materiais [Ble15d] Tambeacutem chamada de Flow-Based Programming esta
16
Metodologia
abordagem permite apresentar ao utilizador os procedimentos como uma caixa negra com pos-
siacuteveis entradas e saiacutedas representadas como ligaccedilotildees de fluxo A correspondente utilizaccedilatildeo na
interaccedilatildeo com geraccedilatildeo procedimental pode permitir o encadeamento de muacuteltiplos procedimentos
No entanto a abordagem pode ser mais trabalhosa para o utilizador introduzindo um niacutevel de
interaccedilatildeo adicional para cada objeto introduzido na cena
323 Funccedilotildees
Esta abordagem disponibiliza ao utilizador cada recurso de geraccedilatildeo procedimental como uma
funccedilatildeo disponiacutevel a qualquer momento na interface da ferramenta de modelaccedilatildeo manual Aquando
da respetiva invocaccedilatildeo satildeo requisitados aos utilizadores os paracircmetros necessaacuterios agrave execuccedilatildeo
A abordagem em causa eacute potencialmente a mais faacutecil de adotar por parte dos utilizadores de
ferramentas de modelaccedilatildeo manual Devido agrave simplicidade na interaccedilatildeo assim como a reduzida
necessidade de tempo e recursos para a implementaccedilatildeo esta foi a abordagem de interaccedilatildeo utilizada
na soluccedilatildeo desenvolvida
33 Arquitetura da Soluccedilatildeo
Para abordar este problema eacute proposta a utilizaccedilatildeo de duas aplicaccedilotildees jaacute presentes no mer-
cado Uma aplicaccedilatildeo dedicada agrave modelaccedilatildeo procedimental e uma aplicaccedilatildeo de modelaccedilatildeo manual
Foi escolhida esta abordagem na medida em que eacute possiacutevel utilizar duas aplicaccedilotildees jaacute existentes
sendo possiacutevel dessa forma aproveitar os pontos fortes de cada soluccedilatildeo com o intuito de otimi-
zar o processo de criaccedilatildeo de novos cenaacuterios e conteuacutedo tridimensional Esta abordagem pode ser
representada como uma soluccedilatildeo estruturada numa arquitetura Cliente-Servidor em que a aplica-
ccedilatildeo de geraccedilatildeo procedimental eacute capaz de fornecer serviccedilos de geraccedilatildeo de conteuacutedo a um ou mais
clientes de modelaccedilatildeo Esta abordagem interliga as duas aplicaccedilotildees atraveacutes de um protocolo de
comunicaccedilatildeo Este permite ao utilizador da ferramenta de modelaccedilatildeo manual requisitar a produ-
ccedilatildeo de conteuacutedo seguindo os valores impostos pelo utilizador nos paracircmetros do procedimento
requisitado O protocolo eacute descrito em maior detalhe na secccedilatildeo 34
331 Vantagens
Faacutecil integraccedilatildeo em diferentes plataformas Devido agrave arquitetura ser baseada na comunicaccedilatildeo
entre duas aplicaccedilotildees por um protocolo de comunicaccedilatildeo geneacuterico eacute com alguma facili-
dade que se realiza a interligaccedilatildeo com diferentes soluccedilotildees de geraccedilatildeo procedimental ou de
modelaccedilatildeo manual Sendo assim possiacutevel a expansatildeo para novos ambientes de modelaccedilatildeo
manual ou mesmo introduzir novas soluccedilotildees de geraccedilatildeo procedimental
Escalabilidade A arquitetura proposta poderaacute permitir que esta seja implementada de modo a que
um servidor central de geraccedilatildeo procedimental sirva por exemplo num ambiente empresa-
rial como um repositoacuterio de recursos de geraccedilatildeo de conteuacutedos desta forma permitindo
17
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Agradecimentos
Comeccedilo por agradecer aos meus orientadores o Professor Rui Pedro Amaral Rodrigues PedroAmorim Brandatildeo da Silva e o Joatildeo Tiago Neto Jacob pelo seu trabalho conselhos e apoio semos quais esta dissertaccedilatildeo natildeo seria concluiacuteda Agradeccedilo tambeacutem ao Professor Pedro Cardoso daFaculdade de Belas Artes da Universidade do Porto pelo apoio dado no decorrer desta dissertaccedilatildeo
Agradeccedilo a todos os membros da Faculdade de Engenharia da Universidade do Porto e doDepartamento de Engenharia Informaacutetica e Computaccedilatildeo por me motivarem e ensinarem durantedestes anos
Agradeccedilo em particular ao meu colega e amigo Joatildeo Almeida pelo apoio que me deu na revisatildeodeste documento Finalmente gostaria de agradecer aos meus paiacutes irmatildeo amigos colegas decurso e familiares pelo apoio que me deram ao longo do meu percurso acadeacutemico
Rui Miguel Barros Gonccedilalves
v
vi
ldquoWhat we usually consider as impossible are simply engineering problemstherersquos no law of physics preventing themrdquo
Dr Michio Kaku
vii
viii
Conteuacutedo
1 Introduccedilatildeo 111 Contexto 212 Motivaccedilatildeo e Problema 213 Objetivos 314 Estrutura do documento 3
2 Estado da Arte e Trabalhos Relacionados 521 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais 5
211 Teacutecnicas Sketch-based 5212 Editores Visuais 8213 Modelaccedilatildeo Procedimental Invertida 9
22 Modelaccedilatildeo 3D Manual 10221 Teacutecnicas de Modelaccedilatildeo Manual 10222 Ferramentas de Modelaccedilatildeo 3D 11
23 Sumaacuterio 13
3 Metodologia 1531 Meacutetodo de Trabalho 1532 Metodologias de Interaccedilatildeo com o Utilizador 16
321 Modificadores 16322 Grafos 16323 Funccedilotildees 17
33 Arquitetura da Soluccedilatildeo 17331 Vantagens 17332 Desvantagens 18
34 Protocolo de Comunicaccedilatildeo 19
4 Implementaccedilatildeo 2141 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual 2142 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental 2243 Comunicaccedilatildeo 2344 Construccedilatildeo da Interface 2545 Execuccedilatildeo 26
5 Teste da Soluccedilatildeo e Resultados Obtidos 3151 Metodologia de Teste 3152 Resultados 36
ix
CONTEUacuteDO
6 Conclusotildees e Trabalho Futuro 3961 Trabalho Futuro 39
Referecircncias 41
A Mensagens JSON 47A1 JSON de Pedido de Abertura do Projeto Urban 47A2 JSON de Informaccedilatildeo do Projeto Urban 47A3 Exemplo de Pedido para Gerar um Grafo 49A4 Exemplo de Resposta de Erro do Servidor 50
B Principais Grafos do Projeto Urban 51
C Cenaacuterios Resultantes dos Testes com Utilizadores 55
x
Lista de Figuras
11 Captura de ecratilde do viacutedeo jogo Crysis 3 da Electronic Arts 2
21 Procedural sketching of virtual worlds por Smelik et al [STdKB10] 622 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et
al [IOI06b IOI06a] 723 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch 824 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13] 925 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14] 1026 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modelo
NURBS 1127 Interface da ferramenta Blender 1228 Interface da ferramenta Autodesk Maya 12
31 Diagrama do sistema proposto 18
41 Editor Construct em execuccedilatildeo 2242 Grafo exemplo e respetiva geometria produzida 2343 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct 2444 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct
a abrir 2445 Barra de ferramentas depois de aberto um projeto 2646 JSON enviado ao servidor para a execuccedilatildeo de um grafo 2647 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base 2748 Edifiacutecio depois de adicionado agrave cena 2749 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores 28410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular 28411 Custom Properties de um objeto produzido por um grafo Cube 29
51 Cenaacuterio requisitado aos utilizadores 3152 Exemplos de resultados possiacuteveis do grafo Building 3253 Exemplo de resultado do grafo Window 3354 Exemplo de resultado do grafo Door 3355 Exemplo de resultado do grafo CityStreets 3456 Cursor 3D do Blender 36
B1 Grafo Building como visto no editor Construct 51B2 Grafo CityStreets como visto no editor Construct 52B3 Grafo Window como visto no editor Construct 52B4 Grafo Door como visto no editor Construct 53
xi
LISTA DE FIGURAS
B5 Grafo DetailedRoof como visto no editor Construct 53
C1 Cenaacuterio criado pelo utilizador 3 55C2 Cenaacuterio criado pelo utilizador 4 56
xii
Lista de Tabelas
41 Estatiacutesticas dos principais foacuteruns 2242 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender 25
51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e otempo utilizado para construir o cenaacuterio utilizando o add-on desenvolvido 37
52 Resultados da avaliaccedilatildeo de usabilidade do sistema 37
xiii
LISTA DE TABELAS
xiv
Abreviaturas e Siacutembolos
API Application Programming InterfaceCAD Computer-Aided DesignCASE Computer-Aided Software EngineeringCGI Computer-Generated ImageJSON JavaScript Object NotationMP Modelaccedilatildeo ProcedimentalGP Geraccedilatildeo ProcedimentalMM Modelaccedilatildeo ManualSUS System Usability ScaleTCP Transmission Control Protocol
xv
Capiacutetulo 1
Introduccedilatildeo
A criaccedilatildeo de ambientes virtuais eacute um toacutepico muito relevante em computaccedilatildeo graacutefica e reali-
dade virtual tendo aplicaccedilotildees na induacutestria do entretenimento para a produccedilatildeo filmes e videojogos
entre outros Na induacutestria do cinema estes ambientes virtuais satildeo utilizados para criar imagens
impossiacuteveis de reproduzir atraveacutes de meios praacuteticos Na induacutestria dos videojogos cada vez mais
encontramos jogos em ambientes de maior dimensatildeo e com um elevado niacutevel de detalhe (Figura
11)
Em modelaccedilatildeo a abordagem tradicional eacute a de Modelaccedilatildeo Manual que permite ao artista
controlo completo e fino do objeto a ser criado No que toca agrave criaccedilatildeo de cenaacuterios de elevadas
dimensotildees como montanhas cidades estradas e vegetaccedilatildeo a abordagem tradicional torna-se cada
vez menos viaacutevel A introduccedilatildeo de meacutetodos procedimentais na geraccedilatildeo destes conteuacutedos permite
produzir resultados de alta qualidade com alguma facilidade produzindo cenaacuterios numa fraccedilatildeo do
tempo e do custo correspondentes agrave respetiva produccedilatildeo por meio de modelaccedilatildeo manual
Apesar do grande impacto positivo que esta abordagem trouxe para a induacutestria de um ponto
de vista artiacutestico nem sempre o resultado eacute o mais desejado desta forma podendo necessitar
da introduccedilatildeo de pormenores e alteraccedilotildees finas agrave respetiva geometria para produzir um resultado
uacutenico e mais proacuteximo da visatildeo artiacutestica do criador Para tal tecircm sido desenvolvidas teacutecnicas
para uma interaccedilatildeo mais intuitiva com a modelaccedilatildeo procedimental tentado dar ao modelador um
melhor controlo sobre os meacutetodos automatizados que lhes estatildeo subjacentes natildeo possuindo ainda
o niacutevel de controlo fino que uma ferramenta de modelaccedilatildeo manual pode oferecer
1
Introduccedilatildeo
Figura 11 Captura de ecratilde do viacutedeo jogo Crysis 3 da Electronic Arts
11 Contexto
Esta dissertaccedilatildeo insere-se na aacuterea da computaccedilatildeo graacutefica mais especificamente na aacuterea da mo-
delaccedilatildeo tridimensional geraccedilatildeo procedimental de modelos 3D e interaccedilatildeo com os mesmos Estas
aacutereas intersectam-se em rumo a uma melhor interaccedilatildeo com recursos de geraccedilatildeo procedimental
num ambiente de modelaccedilatildeo manual
Esta dissertaccedilatildeo foi realizada na Faculdade de Engenharia da Universidade do Porto no Labo-
ratoacuterio de IampD de Computaccedilatildeo Graacutefica Interaccedilatildeo e Jogos
12 Motivaccedilatildeo e Problema
Os avanccedilos no desenvolvimento de hardware e software resultam numa necessidade de con-
teuacutedo tridimensional maior e mais detalhado criando uma maior carga nas equipas que os pro-
duzem Como mencionado previamente a utilizaccedilatildeo de modelaccedilatildeo procedimental para a criaccedilatildeo
raacutepida de ambientes tridimensionais eacute altamente apelativa para a induacutestria permitindo poupar
tempo e dinheiro comparativamente a uma abordagem manual
No entanto esta abordagem dificulta ao modelador a introduccedilatildeo de pormenores pois os meacute-
todos procedimentais satildeo definidos tipicamente por um conjunto de regras e paracircmetros de uma
forma natildeo intuitiva ou de controlo limitado A simples modificaccedilatildeo de um paracircmetro pode criar
uma reaccedilatildeo em cadeia de modificaccedilotildees que alteram por completo o modelo gerado Eacute assim ape-
lativo encontrar um meacutetodo que melhor aproveite as vantagens das duas abordagens permitindo
aos modeladores uma produccedilatildeo de conteuacutedo tridimensional mais raacutepida e controlada
2
Introduccedilatildeo
13 Objetivos
O objetivo principal deste trabalho eacute desenvolver uma soluccedilatildeo que melhor aproveite as vanta-
gens das duas principais abordagens agrave modelaccedilatildeo 3D para tal eacute possiacutevel identificar os seguintes
objetivos especiacuteficos
bull Investigar o estado da arte da aacuterea da modelaccedilatildeo procedimental e modelaccedilatildeo manual em
particular os avanccedilos realizados na interaccedilatildeo com os meacutetodos utilizados em modelaccedilatildeo pro-
cedimental
bull Estudar as metodologias possiacuteveis para abordar o problema
bull Desenvolver uma soluccedilatildeo utilizando uma abordagem possiacutevel com os recursos disponiacuteveis
bull Testar a soluccedilatildeo com utilizadores proficientes em modelaccedilatildeo de conteuacutedo 3D
14 Estrutura do documento
Esta dissertaccedilatildeo encontra-se dividida em 6 capiacutetulos anexos e referecircncias O capiacutetulo pre-
sente consiste numa descriccedilatildeo do problema da motivaccedilatildeo e dos objetivos propostos para a cor-
respondente realizaccedilatildeo No capiacutetulo 2 eacute realizado um levantamento do estado da arte nas aacutereas
da modelaccedilatildeo procedimental e modelaccedilatildeo manual em especial os avanccedilos realizados na interaccedilatildeo
com os meacutetodos utilizados em modelaccedilatildeo procedimental No capiacutetulo 3 satildeo discutidas as meto-
dologias estudadas para a melhor interaccedilatildeo entre as duas abordagens agrave modelaccedilatildeo sendo tambeacutem
apresentada com maior detalhe a metodologia a ser utilizada
No capiacutetulo 4 satildeo descritos alguns detalhes de implementaccedilatildeo da soluccedilatildeo desenvolvida base-
ada na metodologia discutida no capiacutetulo 3
No capiacutetulo 5 eacute apresentada a metodologia de teste utilizada para avaliar a soluccedilatildeo desenvol-
vida sendo tambeacutem apresentados os resultados obtidos
No capiacutetulo 6 o final da dissertaccedilatildeo satildeo resumidas algumas constataccedilotildees e conclusotildees rea-
lizadas sobre esta dissertaccedilatildeo Eacute efetuada tambeacutem uma listagem de alguns pontos para potencial
trabalho futuro
3
Introduccedilatildeo
4
Capiacutetulo 2
Estado da Arte e TrabalhosRelacionados
Neste capiacutetulo seraacute realizada uma revisatildeo bibliograacutefica que visa apresentar todos os avanccedilos
realizados nas aacutereas da interaccedilatildeo com os meacutetodos de geraccedilatildeo procedimental Seratildeo apresentados
os tipos de conteuacutedo passiacuteveis de serem produzidos por meio destes meacutetodos bem como as teacutec-
nicas utilizadas para a respetiva interaccedilatildeo e geraccedilatildeo Iratildeo tambeacutem ser apresentadas as abordagens
existentes para uma modelaccedilatildeo manual e as ferramentas existentes no mercado
21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundosvirtuais
O paradigma de interaccedilatildeo com meacutetodos de geraccedilatildeo procedimental eacute tradicionalmente funci-
onal Cada procedimento pode ser considerado uma caixa negra de operaccedilotildees que dependendo
de certos valores de entrada produz um ou mais resultados A interaccedilatildeo com estes nem sempre
eacute a mais intuitiva pois para atingir o resultado desejado envolve em repetidas tentativa e erro por
parte do utilizador No entanto em anos recentes tem existido um avanccedilo consideraacutevel nesta aacuterea
tentado conceder ao utilizador maior controlo sobre os meacutetodos de geraccedilatildeo procedimental com
abordagens como Sketch-based editores visuais e Modelaccedilatildeo Procedimental Invertida
211 Teacutecnicas Sketch-based
Esta abordagem tenta aproximar o tipo de interaccedilatildeo com que os principais utilizadores de
meacutetodos de Modelaccedilatildeo Procedimental estatildeo familiarizados Noccedilotildees como Brushes e Sketches satildeo
alguns dos conceitos mais populares entre designers profissionais
5
Estado da Arte e Trabalhos Relacionados
2111 Terrenos
De Carpentier et al [dCB09] propuseram um meacutetodo de ediccedilatildeo de terrenos no qual eacute dada ao
utilizador a possibilidade de alterar o heightfield atraveacutes de procedural brushes tentando combinar
a interaccedilatildeo manual localizada com a modificaccedilatildeo da parametrizaccedilatildeo por completo de heightfields
Esta abordagem eacute capaz de produzir alteraccedilotildees a tempo real graccedilas agrave respetiva implementaccedilatildeo
com shaders
Smelik et al [STdKB10] seguindo a respetiva proposta de modelaccedilatildeo de mundos virtuais
[STdKB08] propotildeem a utilizaccedilatildeo da abordagem Procedural sketching e demonstram-na num
protoacutetipo intitulado de SketchaWorld Esta abordagem eacute dividida em dois principais modos de
interaccedilatildeo (Figura 21) Landscape Mode e Feature Mode
Figura 21 Procedural sketching of virtual worlds por Smelik et al [STdKB10]
No primeiro o utilizador interage com uma vista top-down do terreno divido em grelha e eacute
capaz de definir a informaccedilatildeo geoloacutegica de cada ceacutelula atraveacutes do uso de Brushes Em Feature
Mode o utilizador manipula pontos de controlo correspondendo a vetores ou poliacutegonos que deli-
mitam a localizaccedilatildeo de cidades rios e vegetaccedilatildeo A ferramenta fornece feedback da construccedilatildeo do
terreno a um ritmo consideraacutevel para uma interaccedilatildeo fluida Esta tambeacutem dispotildee de funcionalida-
des como undo e redo para uma melhorar a interaccedilatildeo entre o utilizador e a ferramenta permitindo
assim a introduccedilatildeo de alteraccedilotildees e caso estas natildeo sejam desejadas pelo utilizador estas podem
ser desfeitas rapidamente Gain et al [GMSe09] propotildeem uma soluccedilatildeo que permite ao utilizador
esboccedilar as silhuetas e limites de corpos montanhosos a serem gerados
6
Estado da Arte e Trabalhos Relacionados
2112 Estradas
Num esforccedilo de melhorar a interaccedilatildeo com path layouts Singh et al [SM08] desenvolveram a
ferramenta Drive que permite a conceptualizaccedilatildeo de redes rodoviaacuterias tridimensionais por meio
de esboccedilos que satildeo posteriormente aproximados a clotoacuteides (Curvas em que o raio varia line-
armente) Com esta abordagem eacute possiacutevel produzir itineraacuterios em que as transiccedilotildees entre raios
de curvatura satildeo lineares tornando-os assim adequados para a conduccedilatildeo A ferramenta tambeacutem
introduz Terrain sensitive sketching que por meios automaacuteticos coloca sinalizaccedilatildeo no percurso e
vegetaccedilatildeo nas redondezas
2113 Vegetaccedilatildeo
Figura 22 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et al[IOI06b IOI06a]
O trabalho de Ijiri et al [IOI06b IOI06a] apresenta uma teacutecnica que atraveacutes de traccedilados defi-
nidos pelo utilizador (Figura 22) permite a manipulaccedilatildeo da direccedilatildeo de crescimento de vegetaccedilatildeo
produzida por L-Systems uma abordagem jaacute muito estudada para a criaccedilatildeo de vegetaccedilatildeo pro-
posta por Lindenmayer [Lin68] como um tipo de gramaacutetica formal capaz de representar padrotildees
e geometria fractal existente na vegetaccedilatildeo Em 1988 foi proposto por Prusinkiewicz [PLH88] a
utilizaccedilatildeo de L-systems para a modelaccedilatildeo de vegetaccedilatildeo Ao longo das ultimas deacutecadas tecircm sido
realizados avanccedilos consideraacuteveis na produccedilatildeo de vegetaccedilatildeo realiacutestica [WP95] e a respetiva inte-
raccedilatildeo com o seu meio ambiente [MP96 Pru00] tentado assim produzir vegetaccedilatildeo que melhor
simule o comportamento fiacutesico e bioloacutegico de vegetaccedilatildeo real
Mais recentemente o trabalho de Palubicky et al [PHL+09] foi expandido e transportado
para uma aplicaccedilatildeo para dispositivos iPad em que o modelador tem um controlo fino sobre o
crescimento de uma aacutervore Utilizando o conceito de tree self-organization Longay et al criaram
7
Estado da Arte e Trabalhos Relacionados
a ferramenta TreeSketch 23 que estimula a competiccedilatildeo entre os ramos de uma aacutervore por espaccedilo
e luz dentro dos paracircmetros e inputs visuais dados pelo utilizador [LRBP12]
Figura 23 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch
212 Editores Visuais
Numa tentativa de melhorar a interaccedilatildeo com modelaccedilatildeo procedimental baseada em gramaacuteticas
[WWSR03 MWH+06] Lipp et al propuseram uma abordagem que permite a manipulaccedilatildeo direta
do resultado produzido por uma gramaacutetica O utilizador pode manipular diretamente no objeto as
respetivas dimensotildees e configuraccedilotildees [LWW08]
Mais recentemente Krecklau et al [KK12] introduziram uma abordagem que permite a ge-
raccedilatildeo de cenas a partir de primitivas de alto niacutevel e a correspondente manipulaccedilatildeo por interaccedilatildeo
direta na cena consequentemente permitindo a utilizadores menos experientes a utilizaccedilatildeo de
gramaacuteticas procedimentais complexas sem a necessidade de interaccedilatildeo textual com as mesmas
2121 Visual Node Based
Editores Visual Node Based satildeo utilizados em muitas aplicaccedilotildees comercias como meio de
dar ao utilizador feedback visual do fluxo de informaccedilatildeo Encontra-se em editores de shaders
[Hol15 Aut15b] editores de animaccedilotildees [Tec15] e em editores de texturas [Cod15] A vasta uti-
lizaccedilatildeo da teacutecnica na aacuterea de produccedilatildeo de conteuacutedo 3D por utilizadores com pouca experiecircncia
de programaccedilatildeo levou a que investigadores a utilizassem para a especificaccedilatildeo de gramaacuteticas de
produccedilatildeo
Nesse contexto Patow [Pat12] desenvolveu uma soluccedilatildeo para a construccedilatildeo e manipulaccedilatildeo de
gramaacuteticas por meio de um editor visual onde noacutes que representam operaccedilotildees geomeacutetricas dos
correspondentes antecessores transmitem o resultado aos noacutes sucessores Na mesma publica-
ccedilatildeo Patow realccedila a importacircncia que esta abordagem acarreta para a modelaccedilatildeo procedimental de
edifiacutecios e admite que existe ainda muito potencial por explorar
8
Estado da Arte e Trabalhos Relacionados
Mais recentemente o trabalho de Silva et al [SMBC13] apresenta uma metodologia de edi-
ccedilatildeo em que grafos podem ser encapsulados em noacutes designados Component capazes de representar
construccedilotildees complexas Os noacutes podem ser facilmente introduzidos noutros grafos e editados por
meio de filtros de fluxo colocados nas arestas ou por restriccedilotildees que auxiliam a especificar a utili-
zaccedilatildeo dos noacutes (Figura 24)
Figura 24 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13]
213 Modelaccedilatildeo Procedimental Invertida
Inverse PM eacute uma teacutecnica em que um dado modelo de entrada eacute aproximado a uma represen-
taccedilatildeo procedimental
Aliaga et al [ARB07] apresenta a reconstruccedilatildeo de edifiacutecios por meio de fotografias Nesta
abordagem o utilizador define os limites das fachadas do edifiacutecio criando uma representaccedilatildeo
minimalista De seguida eacute automaticamente aproximada uma gramaacutetica que melhor representa
o edifiacutecio em questatildeo Com os trabalhos de Šrsquotava et al [ŠBM+10] na parametrizaccedilatildeo de arte
vetorial 2D e de Mitra et al [MGP06] em encontrar simetrias em objetos tridimensionais Bokeloh
et al [BWS10] aplica estes conceitos para a descoberta de simetrias nos objetos e a consequente
aproximaccedilatildeo de gramaacuteticas que definam o objeto em questatildeo
As abordagens atuais focam-se em Modelaccedilatildeo invertida de ambientes urbanos no entanto
Vanegas et al [VGDA+12] demonstram uma metodologia de aproximaccedilatildeo de gramaacuteticas capazes
de representar para aleacutem de edifiacutecios sistemas complexos de vegetaccedilatildeo aproximados a um objeto
jaacute existente
9
Estado da Arte e Trabalhos Relacionados
22 Modelaccedilatildeo 3D Manual
Para a produccedilatildeo de objetos tridimensionais os modeladores utilizam ferramentas dedicadas
que lhes datildeo um controlo total sobre o modelo a ser construiacutedo Estes variam em metaacuteforas de
interface e em puacuteblico alvo Nesta secccedilatildeo vatildeo ser abordadas as teacutecnicas de modelaccedilatildeo atualmente
utilizadas por estas ferramentas e seratildeo listadas as ferramentas existentes no mercado e as respeti-
vas funcionalidades principais
221 Teacutecnicas de Modelaccedilatildeo Manual
2211 Polygon Modelling
Polygon Modelling eacute uma abordagem para a representaccedilatildeo de superfiacutecies tridimensionais utili-
zando poliacutegonos estes satildeo representados por veacutertices e arestas e em grupos formam uma Polygon
Mesh que pode ser armazenada de muacuteltiplas formas [TM06 Bau72 Smi06] Eacute possiacutevel criar ma-
lhas veacutertice a veacutertice manualmente No entanto eacute comum a respetiva manipulaccedilatildeo em software
graacutefico concedendo aos modeladores ferramentas interativas como Blender Autodesk Maya e 3D
Studio Max
Figura 25 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14]
Uma das abordagens mais comuns eacute denominada Box Modelling na qual uma forma geomeacute-
trica considerada uma primitiva (ie cubo esfera cilindro) eacute esculpida iterativamente por pas-
sos de subdivisatildeo do objeto e subsequente manipulaccedilatildeo da geometria ateacute se obter o objeto final
[Jon02 sub14] A figura 25 demonstra da teacutecnica Box Modelling para a modelaccedilatildeo de uma face
Esta abordagem pode ser considerada uma abordagem Subtrativa pois eacute atraveacutes da reduccedilatildeo de um
objeto base que eacute obtido o objeto desejado
10
Estado da Arte e Trabalhos Relacionados
O polygon modelling caracteriza-se pelo controlo direto sobre a colocaccedilatildeo de cada veacutertice de
uma superfiacutecie permitindo dessa forma um controlo fino e preciso sobre o resultado a produzir
2212 NURBS
NURBS ou Non-uniform rational B-spline eacute uma generalizaccedilatildeo de B-Splines e Curvas de Beacute-
zier [KR79 Cab92] um modelo matemaacutetico usado para representar curvas e superfiacutecies com
grande precisatildeo e flexibilidade (Figura 26) Eacute principalmente utilizado em aacutereas da computaccedilatildeo
graacutefica (CAD CAM CAE) onde a precisatildeo dos modelos obtidos eacute muito importante Inicialmente
estudada por Matemaacuteticos como I J Schoenberg [Cob84] foi aplicada em sistemas CAD para a
modelaccedilatildeo na induacutestria Automoacutevel [Beacute83 Beacutez81 Bez68]
Figura 26 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modeloNURBS
2213 Digital Sculpting
Digital Sculpting eacute a adaptaccedilatildeo de teacutecnicas utilizadas para moldar materiais como o barro agrave
modelaccedilatildeo 3D Estas ferramentas permitem ao modelador empurrar puxar polir vincare
adicionar ou remover volume Perry et al [PF01] introduziram Kizamu um dos primeiros passos
na aacuterea do Digital Sculpting Os modelos satildeo representados no que eacute chamado de Adaptively Sam-
pled Distance Fields (ADF) [FPRJ00] que permite representar dados volumeacutetricos que tornam o
processo de Digital Sculpting possiacutevel
222 Ferramentas de Modelaccedilatildeo 3D
2221 Blender
O Blender [ble15a] eacute uma ferramenta profissional de modelaccedilatildeo de coacutedigo aberto desen-
volvida pela Blender Foundation Suporta uma grande variedade de primitivas geomeacutetricas in-
11
Estado da Arte e Trabalhos Relacionados
Figura 27 Interface da ferramenta Blender
cluiacutendo Polygon Meshes curvas de Bezier superfiacutecies NURBS Metaballs e Digital Sculpting
Esta destaca-se por ser gratuita e pela facilidade de criar extensotildees [ble15b] usando a API Python
existente [ble15c] que permite adicionar novas funcionalidades agrave ferramenta
2222 Autodesk Maya
Figura 28 Interface da ferramenta Autodesk Maya
O Autodesk Maya [Aut15b] eacute uma ferramenta de produccedilatildeo de conteuacutedo 3D utilizada nas induacutes-
trias do cinema televisatildeo videojogos e arquitetura Eacute de coacutedigo fechado e a respetiva utilizaccedilatildeo
requer que o utilizador possua uma licenccedila Tal como o Blender o Maya daacute aos modeladores
ferramentas para estes criarem objetos de uma forma interativa 28 Apesar de ser uma ferramenta
versaacutetil e capaz de satisfazer as necessidades de todas induacutestrias acima referidas o Autodesk
Maya tende a ser mais utilizado pela induacutestria do Cinema devido agrave vasta customizaccedilatildeo possiacutevel de
aspetos importantes para esta induacutestria como Animaccedilatildeo e VFX [Aut15c]
12
Estado da Arte e Trabalhos Relacionados
2223 Autodesk 3D Studio Max
O 3D Studio Max [Aut15a] eacute outra ferramenta da Autodesk em muitos aspetos semelhante
ao Maya No entanto o 3DS Max estaacute apenas disponiacutevel para maacutequinas de sistema operativo
Windows e sempre foi mais utilizado pela induacutestria dos videojogos para a criaccedilatildeo de modelos 3D
Tal como o Autodesk Maya este dispotildee de poderosos motores de renderizaccedilatildeo Ray Tracing
2224 Zbrush
O Zbrush [Pix15] eacute uma ferramenta de modelaccedilatildeo 3D baseada nos conceitos de Digital Mo-
delling Daacute ao artista muacuteltiplas Brushes que permitem manipular o objeto a ser definido com
paradigmas transportados de outras aacutereas artiacutesticas Pode tornar mais acessiacutevel para um utilizador
pouco experiente com alguns paradigmas da Computaccedilatildeo Graacutefica a modelaccedilatildeo de objetos com
consideraacutevel detalhe e liberdade artiacutestica [Spe11]
23 Sumaacuterio
Apoacutes o levantamento do estado da arte eacute possiacutevel constatar que as ferramentas de modelaccedilatildeo
manual satildeo a escolha de eleiccedilatildeo para contextos em que o modelador deseja o maior niacutevel controlo
possiacutevel sobre o objeto a ser produzido No entanto considerando ferramentas de modelaccedilatildeo
procedimental tem existido um esforccedilo por parte desta comunidade para tornar a correspondente
experiecircncia de utilizaccedilatildeo mais acessiacutevel a utilizadores pouco familiarizados com o funcionamento
do mesmo Por enquanto a utilizaccedilatildeo deste tipo de ferramentas ainda requer que o conteuacutedo
seja criado em ferramentas dedicadas completamente separadas das ferramentas tradicionais (ie
Maya Blender) essenciais para o trabalho artiacutestico levando a quebras no fluxo de trabalho
13
Estado da Arte e Trabalhos Relacionados
14
Capiacutetulo 3
Metodologia
Com os desenvolvimentos atuais na aacuterea de modelaccedilatildeo procedimental apresentados no capiacute-
tulo 2 eacute possiacutevel verificar que as soluccedilotildees de MP existentes permitem produzir variados tipos de
conteuacutedo tais como terrenos vegetaccedilatildeo edifiacutecios estradas e cidades por outro lado as respeti-
vas integraccedilotildees em ambientes de modelaccedilatildeo manual satildeo algo limitadas ou apenas disponiacuteveis em
ferramentas externas especializadas num uacutenico tipo de conteuacutedo
Da mesma forma como verificado em 21 foram efetuadas vaacuterias tentativas pela comunidade
envolvida em geraccedilatildeo procedimental no sentido a melhorar a interaccedilatildeo com ferramentas dedica-
das agrave geraccedilatildeo procedimental no entanto existe ainda uma grande margem para avanccedilo de uma
integraccedilatildeo geneacuterica destes processos numa ferramenta de modelaccedilatildeo manual Devido agrave falta de
soluccedilotildees que se integrem de forma transparente e acessiacutevel em ambientes de modelaccedilatildeo manual
pretende-se apresentar uma soluccedilatildeo com o objetivo de interligar as duas abordagens neste capiacute-
tulo Inicialmente seraacute apresentada em pormenor a arquitetura da soluccedilatildeo de seguida o protocolo
de comunicaccedilatildeo entre os dois ambientes de modelaccedilatildeo e finalmente seraacute proposto um meacutetodo de
trabalho no qual seraacute descrita a interaccedilatildeo ideal entre o modelador e a soluccedilatildeo proposta
31 Meacutetodo de Trabalho
Numa interaccedilatildeo ideal o modelador teria controlo absoluto sobre os meacutetodos de geraccedilatildeo proce-
dimental e seria possiacutevel modelar procedimentalmente sobre alteraccedilotildees manuais realizadas sobre
o objeto No entanto nem sempre eacute desejado esse niacutevel de controlo e interligaccedilatildeo entre as aborda-
gens Imaginando a modelaccedilatildeo de um edifiacutecio este eacute construiacutedo segundo meacutetodos procedimentais
e recebe como entrada um poliacutegono que delimita a fundaccedilatildeo assim como paracircmetros numeacutericos e
booleanos que definem a geometria resultante Depois de modelado procedimentalmente o objeto
eacute adicionado ao ambiente de modelaccedilatildeo manual onde o modelador pode realizar alteraccedilotildees em
detalhes na geometria ou mesmo alteraccedilotildees profundas na geometria do mesmo
15
Metodologia
Considerando uma situaccedilatildeo em que o modelador realizou alteraccedilotildees profundas na geometria
produzida como por exemplo a reparticcedilatildeo de uma das fachadas do edifiacutecio em trecircs fachadas
Assim que realizadas estas alteraccedilotildees o utilizador pretende alterar a altura do edifiacutecio alterando o
paracircmetro correspondente e requisitando uma atualizaccedilatildeo Para ser possiacutevel manter as alteraccedilotildees
realizadas manualmente e em simultacircneo respeitar as regras definidas pela geraccedilatildeo procedimen-
tal seria necessaacuterio converter estas alteraccedilotildees em regras possiacuteveis de definir no escopo do ambiente
de geraccedilatildeo procedimental
De qualquer das formas as alteraccedilotildees realizadas no ponto anterior podem simplesmente natildeo
fazer sentido apoacutes a aplicaccedilatildeo sobre o objeto que foi reproduzido seguindo as regras definias
por um procedimento Devido a esta limitaccedilatildeo eacute assumido que assim que o utilizador requisita
uma nova execuccedilatildeo de um procedimento o qual natildeo tem problemas em descartar as alteraccedilotildees
executadas manualmente sobre o objeto em questatildeo
Tendo em consideraccedilatildeo esta limitaccedilatildeo eacute possiacutevel estruturar um fluxo de trabalho que melhor
explore as vantagens e limitaccedilotildees de ambas as abordagens de geraccedilatildeo de conteuacutedo tridimensional
O utilizador tem uma panoacuteplia de conteuacutedos procedimentais ao seu dispor que podem ser definidas
via paracircmetros numeacutericos e geomeacutetricos O conteuacutedo eacute adicionado ao ambiente de modelaccedilatildeo ma-
nual e os paracircmetros podem ainda ser editados alterados ao custo de que as modificaccedilotildees manuais
realizadas sobre o objeto sejam descartadas
32 Metodologias de Interaccedilatildeo com o Utilizador
Em relaccedilatildeo agrave interaccedilatildeo com o utilizador foram estudadas trecircs abordagens para a interaccedilatildeo com
meacutetodos de geraccedilatildeo procedimental em ambiente de modelaccedilatildeo manual
321 Modificadores
O conceito de modificadores eacute jaacute utilizado em ambientes de modelaccedilatildeo manual eg no Blen-
der [Bap14 Ble15e] onde satildeo utilizados para realizar operaccedilotildees sobre objetos na cena sem destruir
a geometria subjacente apenas modificam a forma como os objetos satildeo percecionados pelo motor
de renderizaccedilatildeo Esta abordagem eacute uacutetil em situaccedilotildees onde o procedimento a ser executado en-
volve modificaccedilotildees sobre uma geometria base como tal permitindo realizar muacuteltiplas alteraccedilotildees
sobre um objeto podendo estas ser facilmente canceladas recuperando o objeto original No en-
tanto nem todos os recursos de geraccedilatildeo procedimental incidem sobre modificaccedilatildeo de geometria
Os meios de geraccedilatildeo procedimental em muitas situaccedilotildees produzem objetos e cenaacuterios uacutenicos e
independentes de qualquer geometria de entrada
322 Grafos
A abordagem de interaccedilatildeo via grafos eacute atualmente utilizada num ambiente de modelaccedilatildeo ma-
nual para a ediccedilatildeo de materiais [Ble15d] Tambeacutem chamada de Flow-Based Programming esta
16
Metodologia
abordagem permite apresentar ao utilizador os procedimentos como uma caixa negra com pos-
siacuteveis entradas e saiacutedas representadas como ligaccedilotildees de fluxo A correspondente utilizaccedilatildeo na
interaccedilatildeo com geraccedilatildeo procedimental pode permitir o encadeamento de muacuteltiplos procedimentos
No entanto a abordagem pode ser mais trabalhosa para o utilizador introduzindo um niacutevel de
interaccedilatildeo adicional para cada objeto introduzido na cena
323 Funccedilotildees
Esta abordagem disponibiliza ao utilizador cada recurso de geraccedilatildeo procedimental como uma
funccedilatildeo disponiacutevel a qualquer momento na interface da ferramenta de modelaccedilatildeo manual Aquando
da respetiva invocaccedilatildeo satildeo requisitados aos utilizadores os paracircmetros necessaacuterios agrave execuccedilatildeo
A abordagem em causa eacute potencialmente a mais faacutecil de adotar por parte dos utilizadores de
ferramentas de modelaccedilatildeo manual Devido agrave simplicidade na interaccedilatildeo assim como a reduzida
necessidade de tempo e recursos para a implementaccedilatildeo esta foi a abordagem de interaccedilatildeo utilizada
na soluccedilatildeo desenvolvida
33 Arquitetura da Soluccedilatildeo
Para abordar este problema eacute proposta a utilizaccedilatildeo de duas aplicaccedilotildees jaacute presentes no mer-
cado Uma aplicaccedilatildeo dedicada agrave modelaccedilatildeo procedimental e uma aplicaccedilatildeo de modelaccedilatildeo manual
Foi escolhida esta abordagem na medida em que eacute possiacutevel utilizar duas aplicaccedilotildees jaacute existentes
sendo possiacutevel dessa forma aproveitar os pontos fortes de cada soluccedilatildeo com o intuito de otimi-
zar o processo de criaccedilatildeo de novos cenaacuterios e conteuacutedo tridimensional Esta abordagem pode ser
representada como uma soluccedilatildeo estruturada numa arquitetura Cliente-Servidor em que a aplica-
ccedilatildeo de geraccedilatildeo procedimental eacute capaz de fornecer serviccedilos de geraccedilatildeo de conteuacutedo a um ou mais
clientes de modelaccedilatildeo Esta abordagem interliga as duas aplicaccedilotildees atraveacutes de um protocolo de
comunicaccedilatildeo Este permite ao utilizador da ferramenta de modelaccedilatildeo manual requisitar a produ-
ccedilatildeo de conteuacutedo seguindo os valores impostos pelo utilizador nos paracircmetros do procedimento
requisitado O protocolo eacute descrito em maior detalhe na secccedilatildeo 34
331 Vantagens
Faacutecil integraccedilatildeo em diferentes plataformas Devido agrave arquitetura ser baseada na comunicaccedilatildeo
entre duas aplicaccedilotildees por um protocolo de comunicaccedilatildeo geneacuterico eacute com alguma facili-
dade que se realiza a interligaccedilatildeo com diferentes soluccedilotildees de geraccedilatildeo procedimental ou de
modelaccedilatildeo manual Sendo assim possiacutevel a expansatildeo para novos ambientes de modelaccedilatildeo
manual ou mesmo introduzir novas soluccedilotildees de geraccedilatildeo procedimental
Escalabilidade A arquitetura proposta poderaacute permitir que esta seja implementada de modo a que
um servidor central de geraccedilatildeo procedimental sirva por exemplo num ambiente empresa-
rial como um repositoacuterio de recursos de geraccedilatildeo de conteuacutedos desta forma permitindo
17
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
vi
ldquoWhat we usually consider as impossible are simply engineering problemstherersquos no law of physics preventing themrdquo
Dr Michio Kaku
vii
viii
Conteuacutedo
1 Introduccedilatildeo 111 Contexto 212 Motivaccedilatildeo e Problema 213 Objetivos 314 Estrutura do documento 3
2 Estado da Arte e Trabalhos Relacionados 521 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais 5
211 Teacutecnicas Sketch-based 5212 Editores Visuais 8213 Modelaccedilatildeo Procedimental Invertida 9
22 Modelaccedilatildeo 3D Manual 10221 Teacutecnicas de Modelaccedilatildeo Manual 10222 Ferramentas de Modelaccedilatildeo 3D 11
23 Sumaacuterio 13
3 Metodologia 1531 Meacutetodo de Trabalho 1532 Metodologias de Interaccedilatildeo com o Utilizador 16
321 Modificadores 16322 Grafos 16323 Funccedilotildees 17
33 Arquitetura da Soluccedilatildeo 17331 Vantagens 17332 Desvantagens 18
34 Protocolo de Comunicaccedilatildeo 19
4 Implementaccedilatildeo 2141 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual 2142 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental 2243 Comunicaccedilatildeo 2344 Construccedilatildeo da Interface 2545 Execuccedilatildeo 26
5 Teste da Soluccedilatildeo e Resultados Obtidos 3151 Metodologia de Teste 3152 Resultados 36
ix
CONTEUacuteDO
6 Conclusotildees e Trabalho Futuro 3961 Trabalho Futuro 39
Referecircncias 41
A Mensagens JSON 47A1 JSON de Pedido de Abertura do Projeto Urban 47A2 JSON de Informaccedilatildeo do Projeto Urban 47A3 Exemplo de Pedido para Gerar um Grafo 49A4 Exemplo de Resposta de Erro do Servidor 50
B Principais Grafos do Projeto Urban 51
C Cenaacuterios Resultantes dos Testes com Utilizadores 55
x
Lista de Figuras
11 Captura de ecratilde do viacutedeo jogo Crysis 3 da Electronic Arts 2
21 Procedural sketching of virtual worlds por Smelik et al [STdKB10] 622 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et
al [IOI06b IOI06a] 723 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch 824 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13] 925 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14] 1026 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modelo
NURBS 1127 Interface da ferramenta Blender 1228 Interface da ferramenta Autodesk Maya 12
31 Diagrama do sistema proposto 18
41 Editor Construct em execuccedilatildeo 2242 Grafo exemplo e respetiva geometria produzida 2343 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct 2444 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct
a abrir 2445 Barra de ferramentas depois de aberto um projeto 2646 JSON enviado ao servidor para a execuccedilatildeo de um grafo 2647 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base 2748 Edifiacutecio depois de adicionado agrave cena 2749 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores 28410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular 28411 Custom Properties de um objeto produzido por um grafo Cube 29
51 Cenaacuterio requisitado aos utilizadores 3152 Exemplos de resultados possiacuteveis do grafo Building 3253 Exemplo de resultado do grafo Window 3354 Exemplo de resultado do grafo Door 3355 Exemplo de resultado do grafo CityStreets 3456 Cursor 3D do Blender 36
B1 Grafo Building como visto no editor Construct 51B2 Grafo CityStreets como visto no editor Construct 52B3 Grafo Window como visto no editor Construct 52B4 Grafo Door como visto no editor Construct 53
xi
LISTA DE FIGURAS
B5 Grafo DetailedRoof como visto no editor Construct 53
C1 Cenaacuterio criado pelo utilizador 3 55C2 Cenaacuterio criado pelo utilizador 4 56
xii
Lista de Tabelas
41 Estatiacutesticas dos principais foacuteruns 2242 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender 25
51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e otempo utilizado para construir o cenaacuterio utilizando o add-on desenvolvido 37
52 Resultados da avaliaccedilatildeo de usabilidade do sistema 37
xiii
LISTA DE TABELAS
xiv
Abreviaturas e Siacutembolos
API Application Programming InterfaceCAD Computer-Aided DesignCASE Computer-Aided Software EngineeringCGI Computer-Generated ImageJSON JavaScript Object NotationMP Modelaccedilatildeo ProcedimentalGP Geraccedilatildeo ProcedimentalMM Modelaccedilatildeo ManualSUS System Usability ScaleTCP Transmission Control Protocol
xv
Capiacutetulo 1
Introduccedilatildeo
A criaccedilatildeo de ambientes virtuais eacute um toacutepico muito relevante em computaccedilatildeo graacutefica e reali-
dade virtual tendo aplicaccedilotildees na induacutestria do entretenimento para a produccedilatildeo filmes e videojogos
entre outros Na induacutestria do cinema estes ambientes virtuais satildeo utilizados para criar imagens
impossiacuteveis de reproduzir atraveacutes de meios praacuteticos Na induacutestria dos videojogos cada vez mais
encontramos jogos em ambientes de maior dimensatildeo e com um elevado niacutevel de detalhe (Figura
11)
Em modelaccedilatildeo a abordagem tradicional eacute a de Modelaccedilatildeo Manual que permite ao artista
controlo completo e fino do objeto a ser criado No que toca agrave criaccedilatildeo de cenaacuterios de elevadas
dimensotildees como montanhas cidades estradas e vegetaccedilatildeo a abordagem tradicional torna-se cada
vez menos viaacutevel A introduccedilatildeo de meacutetodos procedimentais na geraccedilatildeo destes conteuacutedos permite
produzir resultados de alta qualidade com alguma facilidade produzindo cenaacuterios numa fraccedilatildeo do
tempo e do custo correspondentes agrave respetiva produccedilatildeo por meio de modelaccedilatildeo manual
Apesar do grande impacto positivo que esta abordagem trouxe para a induacutestria de um ponto
de vista artiacutestico nem sempre o resultado eacute o mais desejado desta forma podendo necessitar
da introduccedilatildeo de pormenores e alteraccedilotildees finas agrave respetiva geometria para produzir um resultado
uacutenico e mais proacuteximo da visatildeo artiacutestica do criador Para tal tecircm sido desenvolvidas teacutecnicas
para uma interaccedilatildeo mais intuitiva com a modelaccedilatildeo procedimental tentado dar ao modelador um
melhor controlo sobre os meacutetodos automatizados que lhes estatildeo subjacentes natildeo possuindo ainda
o niacutevel de controlo fino que uma ferramenta de modelaccedilatildeo manual pode oferecer
1
Introduccedilatildeo
Figura 11 Captura de ecratilde do viacutedeo jogo Crysis 3 da Electronic Arts
11 Contexto
Esta dissertaccedilatildeo insere-se na aacuterea da computaccedilatildeo graacutefica mais especificamente na aacuterea da mo-
delaccedilatildeo tridimensional geraccedilatildeo procedimental de modelos 3D e interaccedilatildeo com os mesmos Estas
aacutereas intersectam-se em rumo a uma melhor interaccedilatildeo com recursos de geraccedilatildeo procedimental
num ambiente de modelaccedilatildeo manual
Esta dissertaccedilatildeo foi realizada na Faculdade de Engenharia da Universidade do Porto no Labo-
ratoacuterio de IampD de Computaccedilatildeo Graacutefica Interaccedilatildeo e Jogos
12 Motivaccedilatildeo e Problema
Os avanccedilos no desenvolvimento de hardware e software resultam numa necessidade de con-
teuacutedo tridimensional maior e mais detalhado criando uma maior carga nas equipas que os pro-
duzem Como mencionado previamente a utilizaccedilatildeo de modelaccedilatildeo procedimental para a criaccedilatildeo
raacutepida de ambientes tridimensionais eacute altamente apelativa para a induacutestria permitindo poupar
tempo e dinheiro comparativamente a uma abordagem manual
No entanto esta abordagem dificulta ao modelador a introduccedilatildeo de pormenores pois os meacute-
todos procedimentais satildeo definidos tipicamente por um conjunto de regras e paracircmetros de uma
forma natildeo intuitiva ou de controlo limitado A simples modificaccedilatildeo de um paracircmetro pode criar
uma reaccedilatildeo em cadeia de modificaccedilotildees que alteram por completo o modelo gerado Eacute assim ape-
lativo encontrar um meacutetodo que melhor aproveite as vantagens das duas abordagens permitindo
aos modeladores uma produccedilatildeo de conteuacutedo tridimensional mais raacutepida e controlada
2
Introduccedilatildeo
13 Objetivos
O objetivo principal deste trabalho eacute desenvolver uma soluccedilatildeo que melhor aproveite as vanta-
gens das duas principais abordagens agrave modelaccedilatildeo 3D para tal eacute possiacutevel identificar os seguintes
objetivos especiacuteficos
bull Investigar o estado da arte da aacuterea da modelaccedilatildeo procedimental e modelaccedilatildeo manual em
particular os avanccedilos realizados na interaccedilatildeo com os meacutetodos utilizados em modelaccedilatildeo pro-
cedimental
bull Estudar as metodologias possiacuteveis para abordar o problema
bull Desenvolver uma soluccedilatildeo utilizando uma abordagem possiacutevel com os recursos disponiacuteveis
bull Testar a soluccedilatildeo com utilizadores proficientes em modelaccedilatildeo de conteuacutedo 3D
14 Estrutura do documento
Esta dissertaccedilatildeo encontra-se dividida em 6 capiacutetulos anexos e referecircncias O capiacutetulo pre-
sente consiste numa descriccedilatildeo do problema da motivaccedilatildeo e dos objetivos propostos para a cor-
respondente realizaccedilatildeo No capiacutetulo 2 eacute realizado um levantamento do estado da arte nas aacutereas
da modelaccedilatildeo procedimental e modelaccedilatildeo manual em especial os avanccedilos realizados na interaccedilatildeo
com os meacutetodos utilizados em modelaccedilatildeo procedimental No capiacutetulo 3 satildeo discutidas as meto-
dologias estudadas para a melhor interaccedilatildeo entre as duas abordagens agrave modelaccedilatildeo sendo tambeacutem
apresentada com maior detalhe a metodologia a ser utilizada
No capiacutetulo 4 satildeo descritos alguns detalhes de implementaccedilatildeo da soluccedilatildeo desenvolvida base-
ada na metodologia discutida no capiacutetulo 3
No capiacutetulo 5 eacute apresentada a metodologia de teste utilizada para avaliar a soluccedilatildeo desenvol-
vida sendo tambeacutem apresentados os resultados obtidos
No capiacutetulo 6 o final da dissertaccedilatildeo satildeo resumidas algumas constataccedilotildees e conclusotildees rea-
lizadas sobre esta dissertaccedilatildeo Eacute efetuada tambeacutem uma listagem de alguns pontos para potencial
trabalho futuro
3
Introduccedilatildeo
4
Capiacutetulo 2
Estado da Arte e TrabalhosRelacionados
Neste capiacutetulo seraacute realizada uma revisatildeo bibliograacutefica que visa apresentar todos os avanccedilos
realizados nas aacutereas da interaccedilatildeo com os meacutetodos de geraccedilatildeo procedimental Seratildeo apresentados
os tipos de conteuacutedo passiacuteveis de serem produzidos por meio destes meacutetodos bem como as teacutec-
nicas utilizadas para a respetiva interaccedilatildeo e geraccedilatildeo Iratildeo tambeacutem ser apresentadas as abordagens
existentes para uma modelaccedilatildeo manual e as ferramentas existentes no mercado
21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundosvirtuais
O paradigma de interaccedilatildeo com meacutetodos de geraccedilatildeo procedimental eacute tradicionalmente funci-
onal Cada procedimento pode ser considerado uma caixa negra de operaccedilotildees que dependendo
de certos valores de entrada produz um ou mais resultados A interaccedilatildeo com estes nem sempre
eacute a mais intuitiva pois para atingir o resultado desejado envolve em repetidas tentativa e erro por
parte do utilizador No entanto em anos recentes tem existido um avanccedilo consideraacutevel nesta aacuterea
tentado conceder ao utilizador maior controlo sobre os meacutetodos de geraccedilatildeo procedimental com
abordagens como Sketch-based editores visuais e Modelaccedilatildeo Procedimental Invertida
211 Teacutecnicas Sketch-based
Esta abordagem tenta aproximar o tipo de interaccedilatildeo com que os principais utilizadores de
meacutetodos de Modelaccedilatildeo Procedimental estatildeo familiarizados Noccedilotildees como Brushes e Sketches satildeo
alguns dos conceitos mais populares entre designers profissionais
5
Estado da Arte e Trabalhos Relacionados
2111 Terrenos
De Carpentier et al [dCB09] propuseram um meacutetodo de ediccedilatildeo de terrenos no qual eacute dada ao
utilizador a possibilidade de alterar o heightfield atraveacutes de procedural brushes tentando combinar
a interaccedilatildeo manual localizada com a modificaccedilatildeo da parametrizaccedilatildeo por completo de heightfields
Esta abordagem eacute capaz de produzir alteraccedilotildees a tempo real graccedilas agrave respetiva implementaccedilatildeo
com shaders
Smelik et al [STdKB10] seguindo a respetiva proposta de modelaccedilatildeo de mundos virtuais
[STdKB08] propotildeem a utilizaccedilatildeo da abordagem Procedural sketching e demonstram-na num
protoacutetipo intitulado de SketchaWorld Esta abordagem eacute dividida em dois principais modos de
interaccedilatildeo (Figura 21) Landscape Mode e Feature Mode
Figura 21 Procedural sketching of virtual worlds por Smelik et al [STdKB10]
No primeiro o utilizador interage com uma vista top-down do terreno divido em grelha e eacute
capaz de definir a informaccedilatildeo geoloacutegica de cada ceacutelula atraveacutes do uso de Brushes Em Feature
Mode o utilizador manipula pontos de controlo correspondendo a vetores ou poliacutegonos que deli-
mitam a localizaccedilatildeo de cidades rios e vegetaccedilatildeo A ferramenta fornece feedback da construccedilatildeo do
terreno a um ritmo consideraacutevel para uma interaccedilatildeo fluida Esta tambeacutem dispotildee de funcionalida-
des como undo e redo para uma melhorar a interaccedilatildeo entre o utilizador e a ferramenta permitindo
assim a introduccedilatildeo de alteraccedilotildees e caso estas natildeo sejam desejadas pelo utilizador estas podem
ser desfeitas rapidamente Gain et al [GMSe09] propotildeem uma soluccedilatildeo que permite ao utilizador
esboccedilar as silhuetas e limites de corpos montanhosos a serem gerados
6
Estado da Arte e Trabalhos Relacionados
2112 Estradas
Num esforccedilo de melhorar a interaccedilatildeo com path layouts Singh et al [SM08] desenvolveram a
ferramenta Drive que permite a conceptualizaccedilatildeo de redes rodoviaacuterias tridimensionais por meio
de esboccedilos que satildeo posteriormente aproximados a clotoacuteides (Curvas em que o raio varia line-
armente) Com esta abordagem eacute possiacutevel produzir itineraacuterios em que as transiccedilotildees entre raios
de curvatura satildeo lineares tornando-os assim adequados para a conduccedilatildeo A ferramenta tambeacutem
introduz Terrain sensitive sketching que por meios automaacuteticos coloca sinalizaccedilatildeo no percurso e
vegetaccedilatildeo nas redondezas
2113 Vegetaccedilatildeo
Figura 22 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et al[IOI06b IOI06a]
O trabalho de Ijiri et al [IOI06b IOI06a] apresenta uma teacutecnica que atraveacutes de traccedilados defi-
nidos pelo utilizador (Figura 22) permite a manipulaccedilatildeo da direccedilatildeo de crescimento de vegetaccedilatildeo
produzida por L-Systems uma abordagem jaacute muito estudada para a criaccedilatildeo de vegetaccedilatildeo pro-
posta por Lindenmayer [Lin68] como um tipo de gramaacutetica formal capaz de representar padrotildees
e geometria fractal existente na vegetaccedilatildeo Em 1988 foi proposto por Prusinkiewicz [PLH88] a
utilizaccedilatildeo de L-systems para a modelaccedilatildeo de vegetaccedilatildeo Ao longo das ultimas deacutecadas tecircm sido
realizados avanccedilos consideraacuteveis na produccedilatildeo de vegetaccedilatildeo realiacutestica [WP95] e a respetiva inte-
raccedilatildeo com o seu meio ambiente [MP96 Pru00] tentado assim produzir vegetaccedilatildeo que melhor
simule o comportamento fiacutesico e bioloacutegico de vegetaccedilatildeo real
Mais recentemente o trabalho de Palubicky et al [PHL+09] foi expandido e transportado
para uma aplicaccedilatildeo para dispositivos iPad em que o modelador tem um controlo fino sobre o
crescimento de uma aacutervore Utilizando o conceito de tree self-organization Longay et al criaram
7
Estado da Arte e Trabalhos Relacionados
a ferramenta TreeSketch 23 que estimula a competiccedilatildeo entre os ramos de uma aacutervore por espaccedilo
e luz dentro dos paracircmetros e inputs visuais dados pelo utilizador [LRBP12]
Figura 23 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch
212 Editores Visuais
Numa tentativa de melhorar a interaccedilatildeo com modelaccedilatildeo procedimental baseada em gramaacuteticas
[WWSR03 MWH+06] Lipp et al propuseram uma abordagem que permite a manipulaccedilatildeo direta
do resultado produzido por uma gramaacutetica O utilizador pode manipular diretamente no objeto as
respetivas dimensotildees e configuraccedilotildees [LWW08]
Mais recentemente Krecklau et al [KK12] introduziram uma abordagem que permite a ge-
raccedilatildeo de cenas a partir de primitivas de alto niacutevel e a correspondente manipulaccedilatildeo por interaccedilatildeo
direta na cena consequentemente permitindo a utilizadores menos experientes a utilizaccedilatildeo de
gramaacuteticas procedimentais complexas sem a necessidade de interaccedilatildeo textual com as mesmas
2121 Visual Node Based
Editores Visual Node Based satildeo utilizados em muitas aplicaccedilotildees comercias como meio de
dar ao utilizador feedback visual do fluxo de informaccedilatildeo Encontra-se em editores de shaders
[Hol15 Aut15b] editores de animaccedilotildees [Tec15] e em editores de texturas [Cod15] A vasta uti-
lizaccedilatildeo da teacutecnica na aacuterea de produccedilatildeo de conteuacutedo 3D por utilizadores com pouca experiecircncia
de programaccedilatildeo levou a que investigadores a utilizassem para a especificaccedilatildeo de gramaacuteticas de
produccedilatildeo
Nesse contexto Patow [Pat12] desenvolveu uma soluccedilatildeo para a construccedilatildeo e manipulaccedilatildeo de
gramaacuteticas por meio de um editor visual onde noacutes que representam operaccedilotildees geomeacutetricas dos
correspondentes antecessores transmitem o resultado aos noacutes sucessores Na mesma publica-
ccedilatildeo Patow realccedila a importacircncia que esta abordagem acarreta para a modelaccedilatildeo procedimental de
edifiacutecios e admite que existe ainda muito potencial por explorar
8
Estado da Arte e Trabalhos Relacionados
Mais recentemente o trabalho de Silva et al [SMBC13] apresenta uma metodologia de edi-
ccedilatildeo em que grafos podem ser encapsulados em noacutes designados Component capazes de representar
construccedilotildees complexas Os noacutes podem ser facilmente introduzidos noutros grafos e editados por
meio de filtros de fluxo colocados nas arestas ou por restriccedilotildees que auxiliam a especificar a utili-
zaccedilatildeo dos noacutes (Figura 24)
Figura 24 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13]
213 Modelaccedilatildeo Procedimental Invertida
Inverse PM eacute uma teacutecnica em que um dado modelo de entrada eacute aproximado a uma represen-
taccedilatildeo procedimental
Aliaga et al [ARB07] apresenta a reconstruccedilatildeo de edifiacutecios por meio de fotografias Nesta
abordagem o utilizador define os limites das fachadas do edifiacutecio criando uma representaccedilatildeo
minimalista De seguida eacute automaticamente aproximada uma gramaacutetica que melhor representa
o edifiacutecio em questatildeo Com os trabalhos de Šrsquotava et al [ŠBM+10] na parametrizaccedilatildeo de arte
vetorial 2D e de Mitra et al [MGP06] em encontrar simetrias em objetos tridimensionais Bokeloh
et al [BWS10] aplica estes conceitos para a descoberta de simetrias nos objetos e a consequente
aproximaccedilatildeo de gramaacuteticas que definam o objeto em questatildeo
As abordagens atuais focam-se em Modelaccedilatildeo invertida de ambientes urbanos no entanto
Vanegas et al [VGDA+12] demonstram uma metodologia de aproximaccedilatildeo de gramaacuteticas capazes
de representar para aleacutem de edifiacutecios sistemas complexos de vegetaccedilatildeo aproximados a um objeto
jaacute existente
9
Estado da Arte e Trabalhos Relacionados
22 Modelaccedilatildeo 3D Manual
Para a produccedilatildeo de objetos tridimensionais os modeladores utilizam ferramentas dedicadas
que lhes datildeo um controlo total sobre o modelo a ser construiacutedo Estes variam em metaacuteforas de
interface e em puacuteblico alvo Nesta secccedilatildeo vatildeo ser abordadas as teacutecnicas de modelaccedilatildeo atualmente
utilizadas por estas ferramentas e seratildeo listadas as ferramentas existentes no mercado e as respeti-
vas funcionalidades principais
221 Teacutecnicas de Modelaccedilatildeo Manual
2211 Polygon Modelling
Polygon Modelling eacute uma abordagem para a representaccedilatildeo de superfiacutecies tridimensionais utili-
zando poliacutegonos estes satildeo representados por veacutertices e arestas e em grupos formam uma Polygon
Mesh que pode ser armazenada de muacuteltiplas formas [TM06 Bau72 Smi06] Eacute possiacutevel criar ma-
lhas veacutertice a veacutertice manualmente No entanto eacute comum a respetiva manipulaccedilatildeo em software
graacutefico concedendo aos modeladores ferramentas interativas como Blender Autodesk Maya e 3D
Studio Max
Figura 25 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14]
Uma das abordagens mais comuns eacute denominada Box Modelling na qual uma forma geomeacute-
trica considerada uma primitiva (ie cubo esfera cilindro) eacute esculpida iterativamente por pas-
sos de subdivisatildeo do objeto e subsequente manipulaccedilatildeo da geometria ateacute se obter o objeto final
[Jon02 sub14] A figura 25 demonstra da teacutecnica Box Modelling para a modelaccedilatildeo de uma face
Esta abordagem pode ser considerada uma abordagem Subtrativa pois eacute atraveacutes da reduccedilatildeo de um
objeto base que eacute obtido o objeto desejado
10
Estado da Arte e Trabalhos Relacionados
O polygon modelling caracteriza-se pelo controlo direto sobre a colocaccedilatildeo de cada veacutertice de
uma superfiacutecie permitindo dessa forma um controlo fino e preciso sobre o resultado a produzir
2212 NURBS
NURBS ou Non-uniform rational B-spline eacute uma generalizaccedilatildeo de B-Splines e Curvas de Beacute-
zier [KR79 Cab92] um modelo matemaacutetico usado para representar curvas e superfiacutecies com
grande precisatildeo e flexibilidade (Figura 26) Eacute principalmente utilizado em aacutereas da computaccedilatildeo
graacutefica (CAD CAM CAE) onde a precisatildeo dos modelos obtidos eacute muito importante Inicialmente
estudada por Matemaacuteticos como I J Schoenberg [Cob84] foi aplicada em sistemas CAD para a
modelaccedilatildeo na induacutestria Automoacutevel [Beacute83 Beacutez81 Bez68]
Figura 26 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modeloNURBS
2213 Digital Sculpting
Digital Sculpting eacute a adaptaccedilatildeo de teacutecnicas utilizadas para moldar materiais como o barro agrave
modelaccedilatildeo 3D Estas ferramentas permitem ao modelador empurrar puxar polir vincare
adicionar ou remover volume Perry et al [PF01] introduziram Kizamu um dos primeiros passos
na aacuterea do Digital Sculpting Os modelos satildeo representados no que eacute chamado de Adaptively Sam-
pled Distance Fields (ADF) [FPRJ00] que permite representar dados volumeacutetricos que tornam o
processo de Digital Sculpting possiacutevel
222 Ferramentas de Modelaccedilatildeo 3D
2221 Blender
O Blender [ble15a] eacute uma ferramenta profissional de modelaccedilatildeo de coacutedigo aberto desen-
volvida pela Blender Foundation Suporta uma grande variedade de primitivas geomeacutetricas in-
11
Estado da Arte e Trabalhos Relacionados
Figura 27 Interface da ferramenta Blender
cluiacutendo Polygon Meshes curvas de Bezier superfiacutecies NURBS Metaballs e Digital Sculpting
Esta destaca-se por ser gratuita e pela facilidade de criar extensotildees [ble15b] usando a API Python
existente [ble15c] que permite adicionar novas funcionalidades agrave ferramenta
2222 Autodesk Maya
Figura 28 Interface da ferramenta Autodesk Maya
O Autodesk Maya [Aut15b] eacute uma ferramenta de produccedilatildeo de conteuacutedo 3D utilizada nas induacutes-
trias do cinema televisatildeo videojogos e arquitetura Eacute de coacutedigo fechado e a respetiva utilizaccedilatildeo
requer que o utilizador possua uma licenccedila Tal como o Blender o Maya daacute aos modeladores
ferramentas para estes criarem objetos de uma forma interativa 28 Apesar de ser uma ferramenta
versaacutetil e capaz de satisfazer as necessidades de todas induacutestrias acima referidas o Autodesk
Maya tende a ser mais utilizado pela induacutestria do Cinema devido agrave vasta customizaccedilatildeo possiacutevel de
aspetos importantes para esta induacutestria como Animaccedilatildeo e VFX [Aut15c]
12
Estado da Arte e Trabalhos Relacionados
2223 Autodesk 3D Studio Max
O 3D Studio Max [Aut15a] eacute outra ferramenta da Autodesk em muitos aspetos semelhante
ao Maya No entanto o 3DS Max estaacute apenas disponiacutevel para maacutequinas de sistema operativo
Windows e sempre foi mais utilizado pela induacutestria dos videojogos para a criaccedilatildeo de modelos 3D
Tal como o Autodesk Maya este dispotildee de poderosos motores de renderizaccedilatildeo Ray Tracing
2224 Zbrush
O Zbrush [Pix15] eacute uma ferramenta de modelaccedilatildeo 3D baseada nos conceitos de Digital Mo-
delling Daacute ao artista muacuteltiplas Brushes que permitem manipular o objeto a ser definido com
paradigmas transportados de outras aacutereas artiacutesticas Pode tornar mais acessiacutevel para um utilizador
pouco experiente com alguns paradigmas da Computaccedilatildeo Graacutefica a modelaccedilatildeo de objetos com
consideraacutevel detalhe e liberdade artiacutestica [Spe11]
23 Sumaacuterio
Apoacutes o levantamento do estado da arte eacute possiacutevel constatar que as ferramentas de modelaccedilatildeo
manual satildeo a escolha de eleiccedilatildeo para contextos em que o modelador deseja o maior niacutevel controlo
possiacutevel sobre o objeto a ser produzido No entanto considerando ferramentas de modelaccedilatildeo
procedimental tem existido um esforccedilo por parte desta comunidade para tornar a correspondente
experiecircncia de utilizaccedilatildeo mais acessiacutevel a utilizadores pouco familiarizados com o funcionamento
do mesmo Por enquanto a utilizaccedilatildeo deste tipo de ferramentas ainda requer que o conteuacutedo
seja criado em ferramentas dedicadas completamente separadas das ferramentas tradicionais (ie
Maya Blender) essenciais para o trabalho artiacutestico levando a quebras no fluxo de trabalho
13
Estado da Arte e Trabalhos Relacionados
14
Capiacutetulo 3
Metodologia
Com os desenvolvimentos atuais na aacuterea de modelaccedilatildeo procedimental apresentados no capiacute-
tulo 2 eacute possiacutevel verificar que as soluccedilotildees de MP existentes permitem produzir variados tipos de
conteuacutedo tais como terrenos vegetaccedilatildeo edifiacutecios estradas e cidades por outro lado as respeti-
vas integraccedilotildees em ambientes de modelaccedilatildeo manual satildeo algo limitadas ou apenas disponiacuteveis em
ferramentas externas especializadas num uacutenico tipo de conteuacutedo
Da mesma forma como verificado em 21 foram efetuadas vaacuterias tentativas pela comunidade
envolvida em geraccedilatildeo procedimental no sentido a melhorar a interaccedilatildeo com ferramentas dedica-
das agrave geraccedilatildeo procedimental no entanto existe ainda uma grande margem para avanccedilo de uma
integraccedilatildeo geneacuterica destes processos numa ferramenta de modelaccedilatildeo manual Devido agrave falta de
soluccedilotildees que se integrem de forma transparente e acessiacutevel em ambientes de modelaccedilatildeo manual
pretende-se apresentar uma soluccedilatildeo com o objetivo de interligar as duas abordagens neste capiacute-
tulo Inicialmente seraacute apresentada em pormenor a arquitetura da soluccedilatildeo de seguida o protocolo
de comunicaccedilatildeo entre os dois ambientes de modelaccedilatildeo e finalmente seraacute proposto um meacutetodo de
trabalho no qual seraacute descrita a interaccedilatildeo ideal entre o modelador e a soluccedilatildeo proposta
31 Meacutetodo de Trabalho
Numa interaccedilatildeo ideal o modelador teria controlo absoluto sobre os meacutetodos de geraccedilatildeo proce-
dimental e seria possiacutevel modelar procedimentalmente sobre alteraccedilotildees manuais realizadas sobre
o objeto No entanto nem sempre eacute desejado esse niacutevel de controlo e interligaccedilatildeo entre as aborda-
gens Imaginando a modelaccedilatildeo de um edifiacutecio este eacute construiacutedo segundo meacutetodos procedimentais
e recebe como entrada um poliacutegono que delimita a fundaccedilatildeo assim como paracircmetros numeacutericos e
booleanos que definem a geometria resultante Depois de modelado procedimentalmente o objeto
eacute adicionado ao ambiente de modelaccedilatildeo manual onde o modelador pode realizar alteraccedilotildees em
detalhes na geometria ou mesmo alteraccedilotildees profundas na geometria do mesmo
15
Metodologia
Considerando uma situaccedilatildeo em que o modelador realizou alteraccedilotildees profundas na geometria
produzida como por exemplo a reparticcedilatildeo de uma das fachadas do edifiacutecio em trecircs fachadas
Assim que realizadas estas alteraccedilotildees o utilizador pretende alterar a altura do edifiacutecio alterando o
paracircmetro correspondente e requisitando uma atualizaccedilatildeo Para ser possiacutevel manter as alteraccedilotildees
realizadas manualmente e em simultacircneo respeitar as regras definidas pela geraccedilatildeo procedimen-
tal seria necessaacuterio converter estas alteraccedilotildees em regras possiacuteveis de definir no escopo do ambiente
de geraccedilatildeo procedimental
De qualquer das formas as alteraccedilotildees realizadas no ponto anterior podem simplesmente natildeo
fazer sentido apoacutes a aplicaccedilatildeo sobre o objeto que foi reproduzido seguindo as regras definias
por um procedimento Devido a esta limitaccedilatildeo eacute assumido que assim que o utilizador requisita
uma nova execuccedilatildeo de um procedimento o qual natildeo tem problemas em descartar as alteraccedilotildees
executadas manualmente sobre o objeto em questatildeo
Tendo em consideraccedilatildeo esta limitaccedilatildeo eacute possiacutevel estruturar um fluxo de trabalho que melhor
explore as vantagens e limitaccedilotildees de ambas as abordagens de geraccedilatildeo de conteuacutedo tridimensional
O utilizador tem uma panoacuteplia de conteuacutedos procedimentais ao seu dispor que podem ser definidas
via paracircmetros numeacutericos e geomeacutetricos O conteuacutedo eacute adicionado ao ambiente de modelaccedilatildeo ma-
nual e os paracircmetros podem ainda ser editados alterados ao custo de que as modificaccedilotildees manuais
realizadas sobre o objeto sejam descartadas
32 Metodologias de Interaccedilatildeo com o Utilizador
Em relaccedilatildeo agrave interaccedilatildeo com o utilizador foram estudadas trecircs abordagens para a interaccedilatildeo com
meacutetodos de geraccedilatildeo procedimental em ambiente de modelaccedilatildeo manual
321 Modificadores
O conceito de modificadores eacute jaacute utilizado em ambientes de modelaccedilatildeo manual eg no Blen-
der [Bap14 Ble15e] onde satildeo utilizados para realizar operaccedilotildees sobre objetos na cena sem destruir
a geometria subjacente apenas modificam a forma como os objetos satildeo percecionados pelo motor
de renderizaccedilatildeo Esta abordagem eacute uacutetil em situaccedilotildees onde o procedimento a ser executado en-
volve modificaccedilotildees sobre uma geometria base como tal permitindo realizar muacuteltiplas alteraccedilotildees
sobre um objeto podendo estas ser facilmente canceladas recuperando o objeto original No en-
tanto nem todos os recursos de geraccedilatildeo procedimental incidem sobre modificaccedilatildeo de geometria
Os meios de geraccedilatildeo procedimental em muitas situaccedilotildees produzem objetos e cenaacuterios uacutenicos e
independentes de qualquer geometria de entrada
322 Grafos
A abordagem de interaccedilatildeo via grafos eacute atualmente utilizada num ambiente de modelaccedilatildeo ma-
nual para a ediccedilatildeo de materiais [Ble15d] Tambeacutem chamada de Flow-Based Programming esta
16
Metodologia
abordagem permite apresentar ao utilizador os procedimentos como uma caixa negra com pos-
siacuteveis entradas e saiacutedas representadas como ligaccedilotildees de fluxo A correspondente utilizaccedilatildeo na
interaccedilatildeo com geraccedilatildeo procedimental pode permitir o encadeamento de muacuteltiplos procedimentos
No entanto a abordagem pode ser mais trabalhosa para o utilizador introduzindo um niacutevel de
interaccedilatildeo adicional para cada objeto introduzido na cena
323 Funccedilotildees
Esta abordagem disponibiliza ao utilizador cada recurso de geraccedilatildeo procedimental como uma
funccedilatildeo disponiacutevel a qualquer momento na interface da ferramenta de modelaccedilatildeo manual Aquando
da respetiva invocaccedilatildeo satildeo requisitados aos utilizadores os paracircmetros necessaacuterios agrave execuccedilatildeo
A abordagem em causa eacute potencialmente a mais faacutecil de adotar por parte dos utilizadores de
ferramentas de modelaccedilatildeo manual Devido agrave simplicidade na interaccedilatildeo assim como a reduzida
necessidade de tempo e recursos para a implementaccedilatildeo esta foi a abordagem de interaccedilatildeo utilizada
na soluccedilatildeo desenvolvida
33 Arquitetura da Soluccedilatildeo
Para abordar este problema eacute proposta a utilizaccedilatildeo de duas aplicaccedilotildees jaacute presentes no mer-
cado Uma aplicaccedilatildeo dedicada agrave modelaccedilatildeo procedimental e uma aplicaccedilatildeo de modelaccedilatildeo manual
Foi escolhida esta abordagem na medida em que eacute possiacutevel utilizar duas aplicaccedilotildees jaacute existentes
sendo possiacutevel dessa forma aproveitar os pontos fortes de cada soluccedilatildeo com o intuito de otimi-
zar o processo de criaccedilatildeo de novos cenaacuterios e conteuacutedo tridimensional Esta abordagem pode ser
representada como uma soluccedilatildeo estruturada numa arquitetura Cliente-Servidor em que a aplica-
ccedilatildeo de geraccedilatildeo procedimental eacute capaz de fornecer serviccedilos de geraccedilatildeo de conteuacutedo a um ou mais
clientes de modelaccedilatildeo Esta abordagem interliga as duas aplicaccedilotildees atraveacutes de um protocolo de
comunicaccedilatildeo Este permite ao utilizador da ferramenta de modelaccedilatildeo manual requisitar a produ-
ccedilatildeo de conteuacutedo seguindo os valores impostos pelo utilizador nos paracircmetros do procedimento
requisitado O protocolo eacute descrito em maior detalhe na secccedilatildeo 34
331 Vantagens
Faacutecil integraccedilatildeo em diferentes plataformas Devido agrave arquitetura ser baseada na comunicaccedilatildeo
entre duas aplicaccedilotildees por um protocolo de comunicaccedilatildeo geneacuterico eacute com alguma facili-
dade que se realiza a interligaccedilatildeo com diferentes soluccedilotildees de geraccedilatildeo procedimental ou de
modelaccedilatildeo manual Sendo assim possiacutevel a expansatildeo para novos ambientes de modelaccedilatildeo
manual ou mesmo introduzir novas soluccedilotildees de geraccedilatildeo procedimental
Escalabilidade A arquitetura proposta poderaacute permitir que esta seja implementada de modo a que
um servidor central de geraccedilatildeo procedimental sirva por exemplo num ambiente empresa-
rial como um repositoacuterio de recursos de geraccedilatildeo de conteuacutedos desta forma permitindo
17
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
ldquoWhat we usually consider as impossible are simply engineering problemstherersquos no law of physics preventing themrdquo
Dr Michio Kaku
vii
viii
Conteuacutedo
1 Introduccedilatildeo 111 Contexto 212 Motivaccedilatildeo e Problema 213 Objetivos 314 Estrutura do documento 3
2 Estado da Arte e Trabalhos Relacionados 521 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais 5
211 Teacutecnicas Sketch-based 5212 Editores Visuais 8213 Modelaccedilatildeo Procedimental Invertida 9
22 Modelaccedilatildeo 3D Manual 10221 Teacutecnicas de Modelaccedilatildeo Manual 10222 Ferramentas de Modelaccedilatildeo 3D 11
23 Sumaacuterio 13
3 Metodologia 1531 Meacutetodo de Trabalho 1532 Metodologias de Interaccedilatildeo com o Utilizador 16
321 Modificadores 16322 Grafos 16323 Funccedilotildees 17
33 Arquitetura da Soluccedilatildeo 17331 Vantagens 17332 Desvantagens 18
34 Protocolo de Comunicaccedilatildeo 19
4 Implementaccedilatildeo 2141 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual 2142 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental 2243 Comunicaccedilatildeo 2344 Construccedilatildeo da Interface 2545 Execuccedilatildeo 26
5 Teste da Soluccedilatildeo e Resultados Obtidos 3151 Metodologia de Teste 3152 Resultados 36
ix
CONTEUacuteDO
6 Conclusotildees e Trabalho Futuro 3961 Trabalho Futuro 39
Referecircncias 41
A Mensagens JSON 47A1 JSON de Pedido de Abertura do Projeto Urban 47A2 JSON de Informaccedilatildeo do Projeto Urban 47A3 Exemplo de Pedido para Gerar um Grafo 49A4 Exemplo de Resposta de Erro do Servidor 50
B Principais Grafos do Projeto Urban 51
C Cenaacuterios Resultantes dos Testes com Utilizadores 55
x
Lista de Figuras
11 Captura de ecratilde do viacutedeo jogo Crysis 3 da Electronic Arts 2
21 Procedural sketching of virtual worlds por Smelik et al [STdKB10] 622 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et
al [IOI06b IOI06a] 723 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch 824 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13] 925 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14] 1026 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modelo
NURBS 1127 Interface da ferramenta Blender 1228 Interface da ferramenta Autodesk Maya 12
31 Diagrama do sistema proposto 18
41 Editor Construct em execuccedilatildeo 2242 Grafo exemplo e respetiva geometria produzida 2343 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct 2444 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct
a abrir 2445 Barra de ferramentas depois de aberto um projeto 2646 JSON enviado ao servidor para a execuccedilatildeo de um grafo 2647 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base 2748 Edifiacutecio depois de adicionado agrave cena 2749 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores 28410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular 28411 Custom Properties de um objeto produzido por um grafo Cube 29
51 Cenaacuterio requisitado aos utilizadores 3152 Exemplos de resultados possiacuteveis do grafo Building 3253 Exemplo de resultado do grafo Window 3354 Exemplo de resultado do grafo Door 3355 Exemplo de resultado do grafo CityStreets 3456 Cursor 3D do Blender 36
B1 Grafo Building como visto no editor Construct 51B2 Grafo CityStreets como visto no editor Construct 52B3 Grafo Window como visto no editor Construct 52B4 Grafo Door como visto no editor Construct 53
xi
LISTA DE FIGURAS
B5 Grafo DetailedRoof como visto no editor Construct 53
C1 Cenaacuterio criado pelo utilizador 3 55C2 Cenaacuterio criado pelo utilizador 4 56
xii
Lista de Tabelas
41 Estatiacutesticas dos principais foacuteruns 2242 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender 25
51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e otempo utilizado para construir o cenaacuterio utilizando o add-on desenvolvido 37
52 Resultados da avaliaccedilatildeo de usabilidade do sistema 37
xiii
LISTA DE TABELAS
xiv
Abreviaturas e Siacutembolos
API Application Programming InterfaceCAD Computer-Aided DesignCASE Computer-Aided Software EngineeringCGI Computer-Generated ImageJSON JavaScript Object NotationMP Modelaccedilatildeo ProcedimentalGP Geraccedilatildeo ProcedimentalMM Modelaccedilatildeo ManualSUS System Usability ScaleTCP Transmission Control Protocol
xv
Capiacutetulo 1
Introduccedilatildeo
A criaccedilatildeo de ambientes virtuais eacute um toacutepico muito relevante em computaccedilatildeo graacutefica e reali-
dade virtual tendo aplicaccedilotildees na induacutestria do entretenimento para a produccedilatildeo filmes e videojogos
entre outros Na induacutestria do cinema estes ambientes virtuais satildeo utilizados para criar imagens
impossiacuteveis de reproduzir atraveacutes de meios praacuteticos Na induacutestria dos videojogos cada vez mais
encontramos jogos em ambientes de maior dimensatildeo e com um elevado niacutevel de detalhe (Figura
11)
Em modelaccedilatildeo a abordagem tradicional eacute a de Modelaccedilatildeo Manual que permite ao artista
controlo completo e fino do objeto a ser criado No que toca agrave criaccedilatildeo de cenaacuterios de elevadas
dimensotildees como montanhas cidades estradas e vegetaccedilatildeo a abordagem tradicional torna-se cada
vez menos viaacutevel A introduccedilatildeo de meacutetodos procedimentais na geraccedilatildeo destes conteuacutedos permite
produzir resultados de alta qualidade com alguma facilidade produzindo cenaacuterios numa fraccedilatildeo do
tempo e do custo correspondentes agrave respetiva produccedilatildeo por meio de modelaccedilatildeo manual
Apesar do grande impacto positivo que esta abordagem trouxe para a induacutestria de um ponto
de vista artiacutestico nem sempre o resultado eacute o mais desejado desta forma podendo necessitar
da introduccedilatildeo de pormenores e alteraccedilotildees finas agrave respetiva geometria para produzir um resultado
uacutenico e mais proacuteximo da visatildeo artiacutestica do criador Para tal tecircm sido desenvolvidas teacutecnicas
para uma interaccedilatildeo mais intuitiva com a modelaccedilatildeo procedimental tentado dar ao modelador um
melhor controlo sobre os meacutetodos automatizados que lhes estatildeo subjacentes natildeo possuindo ainda
o niacutevel de controlo fino que uma ferramenta de modelaccedilatildeo manual pode oferecer
1
Introduccedilatildeo
Figura 11 Captura de ecratilde do viacutedeo jogo Crysis 3 da Electronic Arts
11 Contexto
Esta dissertaccedilatildeo insere-se na aacuterea da computaccedilatildeo graacutefica mais especificamente na aacuterea da mo-
delaccedilatildeo tridimensional geraccedilatildeo procedimental de modelos 3D e interaccedilatildeo com os mesmos Estas
aacutereas intersectam-se em rumo a uma melhor interaccedilatildeo com recursos de geraccedilatildeo procedimental
num ambiente de modelaccedilatildeo manual
Esta dissertaccedilatildeo foi realizada na Faculdade de Engenharia da Universidade do Porto no Labo-
ratoacuterio de IampD de Computaccedilatildeo Graacutefica Interaccedilatildeo e Jogos
12 Motivaccedilatildeo e Problema
Os avanccedilos no desenvolvimento de hardware e software resultam numa necessidade de con-
teuacutedo tridimensional maior e mais detalhado criando uma maior carga nas equipas que os pro-
duzem Como mencionado previamente a utilizaccedilatildeo de modelaccedilatildeo procedimental para a criaccedilatildeo
raacutepida de ambientes tridimensionais eacute altamente apelativa para a induacutestria permitindo poupar
tempo e dinheiro comparativamente a uma abordagem manual
No entanto esta abordagem dificulta ao modelador a introduccedilatildeo de pormenores pois os meacute-
todos procedimentais satildeo definidos tipicamente por um conjunto de regras e paracircmetros de uma
forma natildeo intuitiva ou de controlo limitado A simples modificaccedilatildeo de um paracircmetro pode criar
uma reaccedilatildeo em cadeia de modificaccedilotildees que alteram por completo o modelo gerado Eacute assim ape-
lativo encontrar um meacutetodo que melhor aproveite as vantagens das duas abordagens permitindo
aos modeladores uma produccedilatildeo de conteuacutedo tridimensional mais raacutepida e controlada
2
Introduccedilatildeo
13 Objetivos
O objetivo principal deste trabalho eacute desenvolver uma soluccedilatildeo que melhor aproveite as vanta-
gens das duas principais abordagens agrave modelaccedilatildeo 3D para tal eacute possiacutevel identificar os seguintes
objetivos especiacuteficos
bull Investigar o estado da arte da aacuterea da modelaccedilatildeo procedimental e modelaccedilatildeo manual em
particular os avanccedilos realizados na interaccedilatildeo com os meacutetodos utilizados em modelaccedilatildeo pro-
cedimental
bull Estudar as metodologias possiacuteveis para abordar o problema
bull Desenvolver uma soluccedilatildeo utilizando uma abordagem possiacutevel com os recursos disponiacuteveis
bull Testar a soluccedilatildeo com utilizadores proficientes em modelaccedilatildeo de conteuacutedo 3D
14 Estrutura do documento
Esta dissertaccedilatildeo encontra-se dividida em 6 capiacutetulos anexos e referecircncias O capiacutetulo pre-
sente consiste numa descriccedilatildeo do problema da motivaccedilatildeo e dos objetivos propostos para a cor-
respondente realizaccedilatildeo No capiacutetulo 2 eacute realizado um levantamento do estado da arte nas aacutereas
da modelaccedilatildeo procedimental e modelaccedilatildeo manual em especial os avanccedilos realizados na interaccedilatildeo
com os meacutetodos utilizados em modelaccedilatildeo procedimental No capiacutetulo 3 satildeo discutidas as meto-
dologias estudadas para a melhor interaccedilatildeo entre as duas abordagens agrave modelaccedilatildeo sendo tambeacutem
apresentada com maior detalhe a metodologia a ser utilizada
No capiacutetulo 4 satildeo descritos alguns detalhes de implementaccedilatildeo da soluccedilatildeo desenvolvida base-
ada na metodologia discutida no capiacutetulo 3
No capiacutetulo 5 eacute apresentada a metodologia de teste utilizada para avaliar a soluccedilatildeo desenvol-
vida sendo tambeacutem apresentados os resultados obtidos
No capiacutetulo 6 o final da dissertaccedilatildeo satildeo resumidas algumas constataccedilotildees e conclusotildees rea-
lizadas sobre esta dissertaccedilatildeo Eacute efetuada tambeacutem uma listagem de alguns pontos para potencial
trabalho futuro
3
Introduccedilatildeo
4
Capiacutetulo 2
Estado da Arte e TrabalhosRelacionados
Neste capiacutetulo seraacute realizada uma revisatildeo bibliograacutefica que visa apresentar todos os avanccedilos
realizados nas aacutereas da interaccedilatildeo com os meacutetodos de geraccedilatildeo procedimental Seratildeo apresentados
os tipos de conteuacutedo passiacuteveis de serem produzidos por meio destes meacutetodos bem como as teacutec-
nicas utilizadas para a respetiva interaccedilatildeo e geraccedilatildeo Iratildeo tambeacutem ser apresentadas as abordagens
existentes para uma modelaccedilatildeo manual e as ferramentas existentes no mercado
21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundosvirtuais
O paradigma de interaccedilatildeo com meacutetodos de geraccedilatildeo procedimental eacute tradicionalmente funci-
onal Cada procedimento pode ser considerado uma caixa negra de operaccedilotildees que dependendo
de certos valores de entrada produz um ou mais resultados A interaccedilatildeo com estes nem sempre
eacute a mais intuitiva pois para atingir o resultado desejado envolve em repetidas tentativa e erro por
parte do utilizador No entanto em anos recentes tem existido um avanccedilo consideraacutevel nesta aacuterea
tentado conceder ao utilizador maior controlo sobre os meacutetodos de geraccedilatildeo procedimental com
abordagens como Sketch-based editores visuais e Modelaccedilatildeo Procedimental Invertida
211 Teacutecnicas Sketch-based
Esta abordagem tenta aproximar o tipo de interaccedilatildeo com que os principais utilizadores de
meacutetodos de Modelaccedilatildeo Procedimental estatildeo familiarizados Noccedilotildees como Brushes e Sketches satildeo
alguns dos conceitos mais populares entre designers profissionais
5
Estado da Arte e Trabalhos Relacionados
2111 Terrenos
De Carpentier et al [dCB09] propuseram um meacutetodo de ediccedilatildeo de terrenos no qual eacute dada ao
utilizador a possibilidade de alterar o heightfield atraveacutes de procedural brushes tentando combinar
a interaccedilatildeo manual localizada com a modificaccedilatildeo da parametrizaccedilatildeo por completo de heightfields
Esta abordagem eacute capaz de produzir alteraccedilotildees a tempo real graccedilas agrave respetiva implementaccedilatildeo
com shaders
Smelik et al [STdKB10] seguindo a respetiva proposta de modelaccedilatildeo de mundos virtuais
[STdKB08] propotildeem a utilizaccedilatildeo da abordagem Procedural sketching e demonstram-na num
protoacutetipo intitulado de SketchaWorld Esta abordagem eacute dividida em dois principais modos de
interaccedilatildeo (Figura 21) Landscape Mode e Feature Mode
Figura 21 Procedural sketching of virtual worlds por Smelik et al [STdKB10]
No primeiro o utilizador interage com uma vista top-down do terreno divido em grelha e eacute
capaz de definir a informaccedilatildeo geoloacutegica de cada ceacutelula atraveacutes do uso de Brushes Em Feature
Mode o utilizador manipula pontos de controlo correspondendo a vetores ou poliacutegonos que deli-
mitam a localizaccedilatildeo de cidades rios e vegetaccedilatildeo A ferramenta fornece feedback da construccedilatildeo do
terreno a um ritmo consideraacutevel para uma interaccedilatildeo fluida Esta tambeacutem dispotildee de funcionalida-
des como undo e redo para uma melhorar a interaccedilatildeo entre o utilizador e a ferramenta permitindo
assim a introduccedilatildeo de alteraccedilotildees e caso estas natildeo sejam desejadas pelo utilizador estas podem
ser desfeitas rapidamente Gain et al [GMSe09] propotildeem uma soluccedilatildeo que permite ao utilizador
esboccedilar as silhuetas e limites de corpos montanhosos a serem gerados
6
Estado da Arte e Trabalhos Relacionados
2112 Estradas
Num esforccedilo de melhorar a interaccedilatildeo com path layouts Singh et al [SM08] desenvolveram a
ferramenta Drive que permite a conceptualizaccedilatildeo de redes rodoviaacuterias tridimensionais por meio
de esboccedilos que satildeo posteriormente aproximados a clotoacuteides (Curvas em que o raio varia line-
armente) Com esta abordagem eacute possiacutevel produzir itineraacuterios em que as transiccedilotildees entre raios
de curvatura satildeo lineares tornando-os assim adequados para a conduccedilatildeo A ferramenta tambeacutem
introduz Terrain sensitive sketching que por meios automaacuteticos coloca sinalizaccedilatildeo no percurso e
vegetaccedilatildeo nas redondezas
2113 Vegetaccedilatildeo
Figura 22 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et al[IOI06b IOI06a]
O trabalho de Ijiri et al [IOI06b IOI06a] apresenta uma teacutecnica que atraveacutes de traccedilados defi-
nidos pelo utilizador (Figura 22) permite a manipulaccedilatildeo da direccedilatildeo de crescimento de vegetaccedilatildeo
produzida por L-Systems uma abordagem jaacute muito estudada para a criaccedilatildeo de vegetaccedilatildeo pro-
posta por Lindenmayer [Lin68] como um tipo de gramaacutetica formal capaz de representar padrotildees
e geometria fractal existente na vegetaccedilatildeo Em 1988 foi proposto por Prusinkiewicz [PLH88] a
utilizaccedilatildeo de L-systems para a modelaccedilatildeo de vegetaccedilatildeo Ao longo das ultimas deacutecadas tecircm sido
realizados avanccedilos consideraacuteveis na produccedilatildeo de vegetaccedilatildeo realiacutestica [WP95] e a respetiva inte-
raccedilatildeo com o seu meio ambiente [MP96 Pru00] tentado assim produzir vegetaccedilatildeo que melhor
simule o comportamento fiacutesico e bioloacutegico de vegetaccedilatildeo real
Mais recentemente o trabalho de Palubicky et al [PHL+09] foi expandido e transportado
para uma aplicaccedilatildeo para dispositivos iPad em que o modelador tem um controlo fino sobre o
crescimento de uma aacutervore Utilizando o conceito de tree self-organization Longay et al criaram
7
Estado da Arte e Trabalhos Relacionados
a ferramenta TreeSketch 23 que estimula a competiccedilatildeo entre os ramos de uma aacutervore por espaccedilo
e luz dentro dos paracircmetros e inputs visuais dados pelo utilizador [LRBP12]
Figura 23 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch
212 Editores Visuais
Numa tentativa de melhorar a interaccedilatildeo com modelaccedilatildeo procedimental baseada em gramaacuteticas
[WWSR03 MWH+06] Lipp et al propuseram uma abordagem que permite a manipulaccedilatildeo direta
do resultado produzido por uma gramaacutetica O utilizador pode manipular diretamente no objeto as
respetivas dimensotildees e configuraccedilotildees [LWW08]
Mais recentemente Krecklau et al [KK12] introduziram uma abordagem que permite a ge-
raccedilatildeo de cenas a partir de primitivas de alto niacutevel e a correspondente manipulaccedilatildeo por interaccedilatildeo
direta na cena consequentemente permitindo a utilizadores menos experientes a utilizaccedilatildeo de
gramaacuteticas procedimentais complexas sem a necessidade de interaccedilatildeo textual com as mesmas
2121 Visual Node Based
Editores Visual Node Based satildeo utilizados em muitas aplicaccedilotildees comercias como meio de
dar ao utilizador feedback visual do fluxo de informaccedilatildeo Encontra-se em editores de shaders
[Hol15 Aut15b] editores de animaccedilotildees [Tec15] e em editores de texturas [Cod15] A vasta uti-
lizaccedilatildeo da teacutecnica na aacuterea de produccedilatildeo de conteuacutedo 3D por utilizadores com pouca experiecircncia
de programaccedilatildeo levou a que investigadores a utilizassem para a especificaccedilatildeo de gramaacuteticas de
produccedilatildeo
Nesse contexto Patow [Pat12] desenvolveu uma soluccedilatildeo para a construccedilatildeo e manipulaccedilatildeo de
gramaacuteticas por meio de um editor visual onde noacutes que representam operaccedilotildees geomeacutetricas dos
correspondentes antecessores transmitem o resultado aos noacutes sucessores Na mesma publica-
ccedilatildeo Patow realccedila a importacircncia que esta abordagem acarreta para a modelaccedilatildeo procedimental de
edifiacutecios e admite que existe ainda muito potencial por explorar
8
Estado da Arte e Trabalhos Relacionados
Mais recentemente o trabalho de Silva et al [SMBC13] apresenta uma metodologia de edi-
ccedilatildeo em que grafos podem ser encapsulados em noacutes designados Component capazes de representar
construccedilotildees complexas Os noacutes podem ser facilmente introduzidos noutros grafos e editados por
meio de filtros de fluxo colocados nas arestas ou por restriccedilotildees que auxiliam a especificar a utili-
zaccedilatildeo dos noacutes (Figura 24)
Figura 24 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13]
213 Modelaccedilatildeo Procedimental Invertida
Inverse PM eacute uma teacutecnica em que um dado modelo de entrada eacute aproximado a uma represen-
taccedilatildeo procedimental
Aliaga et al [ARB07] apresenta a reconstruccedilatildeo de edifiacutecios por meio de fotografias Nesta
abordagem o utilizador define os limites das fachadas do edifiacutecio criando uma representaccedilatildeo
minimalista De seguida eacute automaticamente aproximada uma gramaacutetica que melhor representa
o edifiacutecio em questatildeo Com os trabalhos de Šrsquotava et al [ŠBM+10] na parametrizaccedilatildeo de arte
vetorial 2D e de Mitra et al [MGP06] em encontrar simetrias em objetos tridimensionais Bokeloh
et al [BWS10] aplica estes conceitos para a descoberta de simetrias nos objetos e a consequente
aproximaccedilatildeo de gramaacuteticas que definam o objeto em questatildeo
As abordagens atuais focam-se em Modelaccedilatildeo invertida de ambientes urbanos no entanto
Vanegas et al [VGDA+12] demonstram uma metodologia de aproximaccedilatildeo de gramaacuteticas capazes
de representar para aleacutem de edifiacutecios sistemas complexos de vegetaccedilatildeo aproximados a um objeto
jaacute existente
9
Estado da Arte e Trabalhos Relacionados
22 Modelaccedilatildeo 3D Manual
Para a produccedilatildeo de objetos tridimensionais os modeladores utilizam ferramentas dedicadas
que lhes datildeo um controlo total sobre o modelo a ser construiacutedo Estes variam em metaacuteforas de
interface e em puacuteblico alvo Nesta secccedilatildeo vatildeo ser abordadas as teacutecnicas de modelaccedilatildeo atualmente
utilizadas por estas ferramentas e seratildeo listadas as ferramentas existentes no mercado e as respeti-
vas funcionalidades principais
221 Teacutecnicas de Modelaccedilatildeo Manual
2211 Polygon Modelling
Polygon Modelling eacute uma abordagem para a representaccedilatildeo de superfiacutecies tridimensionais utili-
zando poliacutegonos estes satildeo representados por veacutertices e arestas e em grupos formam uma Polygon
Mesh que pode ser armazenada de muacuteltiplas formas [TM06 Bau72 Smi06] Eacute possiacutevel criar ma-
lhas veacutertice a veacutertice manualmente No entanto eacute comum a respetiva manipulaccedilatildeo em software
graacutefico concedendo aos modeladores ferramentas interativas como Blender Autodesk Maya e 3D
Studio Max
Figura 25 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14]
Uma das abordagens mais comuns eacute denominada Box Modelling na qual uma forma geomeacute-
trica considerada uma primitiva (ie cubo esfera cilindro) eacute esculpida iterativamente por pas-
sos de subdivisatildeo do objeto e subsequente manipulaccedilatildeo da geometria ateacute se obter o objeto final
[Jon02 sub14] A figura 25 demonstra da teacutecnica Box Modelling para a modelaccedilatildeo de uma face
Esta abordagem pode ser considerada uma abordagem Subtrativa pois eacute atraveacutes da reduccedilatildeo de um
objeto base que eacute obtido o objeto desejado
10
Estado da Arte e Trabalhos Relacionados
O polygon modelling caracteriza-se pelo controlo direto sobre a colocaccedilatildeo de cada veacutertice de
uma superfiacutecie permitindo dessa forma um controlo fino e preciso sobre o resultado a produzir
2212 NURBS
NURBS ou Non-uniform rational B-spline eacute uma generalizaccedilatildeo de B-Splines e Curvas de Beacute-
zier [KR79 Cab92] um modelo matemaacutetico usado para representar curvas e superfiacutecies com
grande precisatildeo e flexibilidade (Figura 26) Eacute principalmente utilizado em aacutereas da computaccedilatildeo
graacutefica (CAD CAM CAE) onde a precisatildeo dos modelos obtidos eacute muito importante Inicialmente
estudada por Matemaacuteticos como I J Schoenberg [Cob84] foi aplicada em sistemas CAD para a
modelaccedilatildeo na induacutestria Automoacutevel [Beacute83 Beacutez81 Bez68]
Figura 26 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modeloNURBS
2213 Digital Sculpting
Digital Sculpting eacute a adaptaccedilatildeo de teacutecnicas utilizadas para moldar materiais como o barro agrave
modelaccedilatildeo 3D Estas ferramentas permitem ao modelador empurrar puxar polir vincare
adicionar ou remover volume Perry et al [PF01] introduziram Kizamu um dos primeiros passos
na aacuterea do Digital Sculpting Os modelos satildeo representados no que eacute chamado de Adaptively Sam-
pled Distance Fields (ADF) [FPRJ00] que permite representar dados volumeacutetricos que tornam o
processo de Digital Sculpting possiacutevel
222 Ferramentas de Modelaccedilatildeo 3D
2221 Blender
O Blender [ble15a] eacute uma ferramenta profissional de modelaccedilatildeo de coacutedigo aberto desen-
volvida pela Blender Foundation Suporta uma grande variedade de primitivas geomeacutetricas in-
11
Estado da Arte e Trabalhos Relacionados
Figura 27 Interface da ferramenta Blender
cluiacutendo Polygon Meshes curvas de Bezier superfiacutecies NURBS Metaballs e Digital Sculpting
Esta destaca-se por ser gratuita e pela facilidade de criar extensotildees [ble15b] usando a API Python
existente [ble15c] que permite adicionar novas funcionalidades agrave ferramenta
2222 Autodesk Maya
Figura 28 Interface da ferramenta Autodesk Maya
O Autodesk Maya [Aut15b] eacute uma ferramenta de produccedilatildeo de conteuacutedo 3D utilizada nas induacutes-
trias do cinema televisatildeo videojogos e arquitetura Eacute de coacutedigo fechado e a respetiva utilizaccedilatildeo
requer que o utilizador possua uma licenccedila Tal como o Blender o Maya daacute aos modeladores
ferramentas para estes criarem objetos de uma forma interativa 28 Apesar de ser uma ferramenta
versaacutetil e capaz de satisfazer as necessidades de todas induacutestrias acima referidas o Autodesk
Maya tende a ser mais utilizado pela induacutestria do Cinema devido agrave vasta customizaccedilatildeo possiacutevel de
aspetos importantes para esta induacutestria como Animaccedilatildeo e VFX [Aut15c]
12
Estado da Arte e Trabalhos Relacionados
2223 Autodesk 3D Studio Max
O 3D Studio Max [Aut15a] eacute outra ferramenta da Autodesk em muitos aspetos semelhante
ao Maya No entanto o 3DS Max estaacute apenas disponiacutevel para maacutequinas de sistema operativo
Windows e sempre foi mais utilizado pela induacutestria dos videojogos para a criaccedilatildeo de modelos 3D
Tal como o Autodesk Maya este dispotildee de poderosos motores de renderizaccedilatildeo Ray Tracing
2224 Zbrush
O Zbrush [Pix15] eacute uma ferramenta de modelaccedilatildeo 3D baseada nos conceitos de Digital Mo-
delling Daacute ao artista muacuteltiplas Brushes que permitem manipular o objeto a ser definido com
paradigmas transportados de outras aacutereas artiacutesticas Pode tornar mais acessiacutevel para um utilizador
pouco experiente com alguns paradigmas da Computaccedilatildeo Graacutefica a modelaccedilatildeo de objetos com
consideraacutevel detalhe e liberdade artiacutestica [Spe11]
23 Sumaacuterio
Apoacutes o levantamento do estado da arte eacute possiacutevel constatar que as ferramentas de modelaccedilatildeo
manual satildeo a escolha de eleiccedilatildeo para contextos em que o modelador deseja o maior niacutevel controlo
possiacutevel sobre o objeto a ser produzido No entanto considerando ferramentas de modelaccedilatildeo
procedimental tem existido um esforccedilo por parte desta comunidade para tornar a correspondente
experiecircncia de utilizaccedilatildeo mais acessiacutevel a utilizadores pouco familiarizados com o funcionamento
do mesmo Por enquanto a utilizaccedilatildeo deste tipo de ferramentas ainda requer que o conteuacutedo
seja criado em ferramentas dedicadas completamente separadas das ferramentas tradicionais (ie
Maya Blender) essenciais para o trabalho artiacutestico levando a quebras no fluxo de trabalho
13
Estado da Arte e Trabalhos Relacionados
14
Capiacutetulo 3
Metodologia
Com os desenvolvimentos atuais na aacuterea de modelaccedilatildeo procedimental apresentados no capiacute-
tulo 2 eacute possiacutevel verificar que as soluccedilotildees de MP existentes permitem produzir variados tipos de
conteuacutedo tais como terrenos vegetaccedilatildeo edifiacutecios estradas e cidades por outro lado as respeti-
vas integraccedilotildees em ambientes de modelaccedilatildeo manual satildeo algo limitadas ou apenas disponiacuteveis em
ferramentas externas especializadas num uacutenico tipo de conteuacutedo
Da mesma forma como verificado em 21 foram efetuadas vaacuterias tentativas pela comunidade
envolvida em geraccedilatildeo procedimental no sentido a melhorar a interaccedilatildeo com ferramentas dedica-
das agrave geraccedilatildeo procedimental no entanto existe ainda uma grande margem para avanccedilo de uma
integraccedilatildeo geneacuterica destes processos numa ferramenta de modelaccedilatildeo manual Devido agrave falta de
soluccedilotildees que se integrem de forma transparente e acessiacutevel em ambientes de modelaccedilatildeo manual
pretende-se apresentar uma soluccedilatildeo com o objetivo de interligar as duas abordagens neste capiacute-
tulo Inicialmente seraacute apresentada em pormenor a arquitetura da soluccedilatildeo de seguida o protocolo
de comunicaccedilatildeo entre os dois ambientes de modelaccedilatildeo e finalmente seraacute proposto um meacutetodo de
trabalho no qual seraacute descrita a interaccedilatildeo ideal entre o modelador e a soluccedilatildeo proposta
31 Meacutetodo de Trabalho
Numa interaccedilatildeo ideal o modelador teria controlo absoluto sobre os meacutetodos de geraccedilatildeo proce-
dimental e seria possiacutevel modelar procedimentalmente sobre alteraccedilotildees manuais realizadas sobre
o objeto No entanto nem sempre eacute desejado esse niacutevel de controlo e interligaccedilatildeo entre as aborda-
gens Imaginando a modelaccedilatildeo de um edifiacutecio este eacute construiacutedo segundo meacutetodos procedimentais
e recebe como entrada um poliacutegono que delimita a fundaccedilatildeo assim como paracircmetros numeacutericos e
booleanos que definem a geometria resultante Depois de modelado procedimentalmente o objeto
eacute adicionado ao ambiente de modelaccedilatildeo manual onde o modelador pode realizar alteraccedilotildees em
detalhes na geometria ou mesmo alteraccedilotildees profundas na geometria do mesmo
15
Metodologia
Considerando uma situaccedilatildeo em que o modelador realizou alteraccedilotildees profundas na geometria
produzida como por exemplo a reparticcedilatildeo de uma das fachadas do edifiacutecio em trecircs fachadas
Assim que realizadas estas alteraccedilotildees o utilizador pretende alterar a altura do edifiacutecio alterando o
paracircmetro correspondente e requisitando uma atualizaccedilatildeo Para ser possiacutevel manter as alteraccedilotildees
realizadas manualmente e em simultacircneo respeitar as regras definidas pela geraccedilatildeo procedimen-
tal seria necessaacuterio converter estas alteraccedilotildees em regras possiacuteveis de definir no escopo do ambiente
de geraccedilatildeo procedimental
De qualquer das formas as alteraccedilotildees realizadas no ponto anterior podem simplesmente natildeo
fazer sentido apoacutes a aplicaccedilatildeo sobre o objeto que foi reproduzido seguindo as regras definias
por um procedimento Devido a esta limitaccedilatildeo eacute assumido que assim que o utilizador requisita
uma nova execuccedilatildeo de um procedimento o qual natildeo tem problemas em descartar as alteraccedilotildees
executadas manualmente sobre o objeto em questatildeo
Tendo em consideraccedilatildeo esta limitaccedilatildeo eacute possiacutevel estruturar um fluxo de trabalho que melhor
explore as vantagens e limitaccedilotildees de ambas as abordagens de geraccedilatildeo de conteuacutedo tridimensional
O utilizador tem uma panoacuteplia de conteuacutedos procedimentais ao seu dispor que podem ser definidas
via paracircmetros numeacutericos e geomeacutetricos O conteuacutedo eacute adicionado ao ambiente de modelaccedilatildeo ma-
nual e os paracircmetros podem ainda ser editados alterados ao custo de que as modificaccedilotildees manuais
realizadas sobre o objeto sejam descartadas
32 Metodologias de Interaccedilatildeo com o Utilizador
Em relaccedilatildeo agrave interaccedilatildeo com o utilizador foram estudadas trecircs abordagens para a interaccedilatildeo com
meacutetodos de geraccedilatildeo procedimental em ambiente de modelaccedilatildeo manual
321 Modificadores
O conceito de modificadores eacute jaacute utilizado em ambientes de modelaccedilatildeo manual eg no Blen-
der [Bap14 Ble15e] onde satildeo utilizados para realizar operaccedilotildees sobre objetos na cena sem destruir
a geometria subjacente apenas modificam a forma como os objetos satildeo percecionados pelo motor
de renderizaccedilatildeo Esta abordagem eacute uacutetil em situaccedilotildees onde o procedimento a ser executado en-
volve modificaccedilotildees sobre uma geometria base como tal permitindo realizar muacuteltiplas alteraccedilotildees
sobre um objeto podendo estas ser facilmente canceladas recuperando o objeto original No en-
tanto nem todos os recursos de geraccedilatildeo procedimental incidem sobre modificaccedilatildeo de geometria
Os meios de geraccedilatildeo procedimental em muitas situaccedilotildees produzem objetos e cenaacuterios uacutenicos e
independentes de qualquer geometria de entrada
322 Grafos
A abordagem de interaccedilatildeo via grafos eacute atualmente utilizada num ambiente de modelaccedilatildeo ma-
nual para a ediccedilatildeo de materiais [Ble15d] Tambeacutem chamada de Flow-Based Programming esta
16
Metodologia
abordagem permite apresentar ao utilizador os procedimentos como uma caixa negra com pos-
siacuteveis entradas e saiacutedas representadas como ligaccedilotildees de fluxo A correspondente utilizaccedilatildeo na
interaccedilatildeo com geraccedilatildeo procedimental pode permitir o encadeamento de muacuteltiplos procedimentos
No entanto a abordagem pode ser mais trabalhosa para o utilizador introduzindo um niacutevel de
interaccedilatildeo adicional para cada objeto introduzido na cena
323 Funccedilotildees
Esta abordagem disponibiliza ao utilizador cada recurso de geraccedilatildeo procedimental como uma
funccedilatildeo disponiacutevel a qualquer momento na interface da ferramenta de modelaccedilatildeo manual Aquando
da respetiva invocaccedilatildeo satildeo requisitados aos utilizadores os paracircmetros necessaacuterios agrave execuccedilatildeo
A abordagem em causa eacute potencialmente a mais faacutecil de adotar por parte dos utilizadores de
ferramentas de modelaccedilatildeo manual Devido agrave simplicidade na interaccedilatildeo assim como a reduzida
necessidade de tempo e recursos para a implementaccedilatildeo esta foi a abordagem de interaccedilatildeo utilizada
na soluccedilatildeo desenvolvida
33 Arquitetura da Soluccedilatildeo
Para abordar este problema eacute proposta a utilizaccedilatildeo de duas aplicaccedilotildees jaacute presentes no mer-
cado Uma aplicaccedilatildeo dedicada agrave modelaccedilatildeo procedimental e uma aplicaccedilatildeo de modelaccedilatildeo manual
Foi escolhida esta abordagem na medida em que eacute possiacutevel utilizar duas aplicaccedilotildees jaacute existentes
sendo possiacutevel dessa forma aproveitar os pontos fortes de cada soluccedilatildeo com o intuito de otimi-
zar o processo de criaccedilatildeo de novos cenaacuterios e conteuacutedo tridimensional Esta abordagem pode ser
representada como uma soluccedilatildeo estruturada numa arquitetura Cliente-Servidor em que a aplica-
ccedilatildeo de geraccedilatildeo procedimental eacute capaz de fornecer serviccedilos de geraccedilatildeo de conteuacutedo a um ou mais
clientes de modelaccedilatildeo Esta abordagem interliga as duas aplicaccedilotildees atraveacutes de um protocolo de
comunicaccedilatildeo Este permite ao utilizador da ferramenta de modelaccedilatildeo manual requisitar a produ-
ccedilatildeo de conteuacutedo seguindo os valores impostos pelo utilizador nos paracircmetros do procedimento
requisitado O protocolo eacute descrito em maior detalhe na secccedilatildeo 34
331 Vantagens
Faacutecil integraccedilatildeo em diferentes plataformas Devido agrave arquitetura ser baseada na comunicaccedilatildeo
entre duas aplicaccedilotildees por um protocolo de comunicaccedilatildeo geneacuterico eacute com alguma facili-
dade que se realiza a interligaccedilatildeo com diferentes soluccedilotildees de geraccedilatildeo procedimental ou de
modelaccedilatildeo manual Sendo assim possiacutevel a expansatildeo para novos ambientes de modelaccedilatildeo
manual ou mesmo introduzir novas soluccedilotildees de geraccedilatildeo procedimental
Escalabilidade A arquitetura proposta poderaacute permitir que esta seja implementada de modo a que
um servidor central de geraccedilatildeo procedimental sirva por exemplo num ambiente empresa-
rial como um repositoacuterio de recursos de geraccedilatildeo de conteuacutedos desta forma permitindo
17
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
viii
Conteuacutedo
1 Introduccedilatildeo 111 Contexto 212 Motivaccedilatildeo e Problema 213 Objetivos 314 Estrutura do documento 3
2 Estado da Arte e Trabalhos Relacionados 521 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais 5
211 Teacutecnicas Sketch-based 5212 Editores Visuais 8213 Modelaccedilatildeo Procedimental Invertida 9
22 Modelaccedilatildeo 3D Manual 10221 Teacutecnicas de Modelaccedilatildeo Manual 10222 Ferramentas de Modelaccedilatildeo 3D 11
23 Sumaacuterio 13
3 Metodologia 1531 Meacutetodo de Trabalho 1532 Metodologias de Interaccedilatildeo com o Utilizador 16
321 Modificadores 16322 Grafos 16323 Funccedilotildees 17
33 Arquitetura da Soluccedilatildeo 17331 Vantagens 17332 Desvantagens 18
34 Protocolo de Comunicaccedilatildeo 19
4 Implementaccedilatildeo 2141 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual 2142 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental 2243 Comunicaccedilatildeo 2344 Construccedilatildeo da Interface 2545 Execuccedilatildeo 26
5 Teste da Soluccedilatildeo e Resultados Obtidos 3151 Metodologia de Teste 3152 Resultados 36
ix
CONTEUacuteDO
6 Conclusotildees e Trabalho Futuro 3961 Trabalho Futuro 39
Referecircncias 41
A Mensagens JSON 47A1 JSON de Pedido de Abertura do Projeto Urban 47A2 JSON de Informaccedilatildeo do Projeto Urban 47A3 Exemplo de Pedido para Gerar um Grafo 49A4 Exemplo de Resposta de Erro do Servidor 50
B Principais Grafos do Projeto Urban 51
C Cenaacuterios Resultantes dos Testes com Utilizadores 55
x
Lista de Figuras
11 Captura de ecratilde do viacutedeo jogo Crysis 3 da Electronic Arts 2
21 Procedural sketching of virtual worlds por Smelik et al [STdKB10] 622 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et
al [IOI06b IOI06a] 723 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch 824 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13] 925 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14] 1026 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modelo
NURBS 1127 Interface da ferramenta Blender 1228 Interface da ferramenta Autodesk Maya 12
31 Diagrama do sistema proposto 18
41 Editor Construct em execuccedilatildeo 2242 Grafo exemplo e respetiva geometria produzida 2343 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct 2444 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct
a abrir 2445 Barra de ferramentas depois de aberto um projeto 2646 JSON enviado ao servidor para a execuccedilatildeo de um grafo 2647 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base 2748 Edifiacutecio depois de adicionado agrave cena 2749 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores 28410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular 28411 Custom Properties de um objeto produzido por um grafo Cube 29
51 Cenaacuterio requisitado aos utilizadores 3152 Exemplos de resultados possiacuteveis do grafo Building 3253 Exemplo de resultado do grafo Window 3354 Exemplo de resultado do grafo Door 3355 Exemplo de resultado do grafo CityStreets 3456 Cursor 3D do Blender 36
B1 Grafo Building como visto no editor Construct 51B2 Grafo CityStreets como visto no editor Construct 52B3 Grafo Window como visto no editor Construct 52B4 Grafo Door como visto no editor Construct 53
xi
LISTA DE FIGURAS
B5 Grafo DetailedRoof como visto no editor Construct 53
C1 Cenaacuterio criado pelo utilizador 3 55C2 Cenaacuterio criado pelo utilizador 4 56
xii
Lista de Tabelas
41 Estatiacutesticas dos principais foacuteruns 2242 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender 25
51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e otempo utilizado para construir o cenaacuterio utilizando o add-on desenvolvido 37
52 Resultados da avaliaccedilatildeo de usabilidade do sistema 37
xiii
LISTA DE TABELAS
xiv
Abreviaturas e Siacutembolos
API Application Programming InterfaceCAD Computer-Aided DesignCASE Computer-Aided Software EngineeringCGI Computer-Generated ImageJSON JavaScript Object NotationMP Modelaccedilatildeo ProcedimentalGP Geraccedilatildeo ProcedimentalMM Modelaccedilatildeo ManualSUS System Usability ScaleTCP Transmission Control Protocol
xv
Capiacutetulo 1
Introduccedilatildeo
A criaccedilatildeo de ambientes virtuais eacute um toacutepico muito relevante em computaccedilatildeo graacutefica e reali-
dade virtual tendo aplicaccedilotildees na induacutestria do entretenimento para a produccedilatildeo filmes e videojogos
entre outros Na induacutestria do cinema estes ambientes virtuais satildeo utilizados para criar imagens
impossiacuteveis de reproduzir atraveacutes de meios praacuteticos Na induacutestria dos videojogos cada vez mais
encontramos jogos em ambientes de maior dimensatildeo e com um elevado niacutevel de detalhe (Figura
11)
Em modelaccedilatildeo a abordagem tradicional eacute a de Modelaccedilatildeo Manual que permite ao artista
controlo completo e fino do objeto a ser criado No que toca agrave criaccedilatildeo de cenaacuterios de elevadas
dimensotildees como montanhas cidades estradas e vegetaccedilatildeo a abordagem tradicional torna-se cada
vez menos viaacutevel A introduccedilatildeo de meacutetodos procedimentais na geraccedilatildeo destes conteuacutedos permite
produzir resultados de alta qualidade com alguma facilidade produzindo cenaacuterios numa fraccedilatildeo do
tempo e do custo correspondentes agrave respetiva produccedilatildeo por meio de modelaccedilatildeo manual
Apesar do grande impacto positivo que esta abordagem trouxe para a induacutestria de um ponto
de vista artiacutestico nem sempre o resultado eacute o mais desejado desta forma podendo necessitar
da introduccedilatildeo de pormenores e alteraccedilotildees finas agrave respetiva geometria para produzir um resultado
uacutenico e mais proacuteximo da visatildeo artiacutestica do criador Para tal tecircm sido desenvolvidas teacutecnicas
para uma interaccedilatildeo mais intuitiva com a modelaccedilatildeo procedimental tentado dar ao modelador um
melhor controlo sobre os meacutetodos automatizados que lhes estatildeo subjacentes natildeo possuindo ainda
o niacutevel de controlo fino que uma ferramenta de modelaccedilatildeo manual pode oferecer
1
Introduccedilatildeo
Figura 11 Captura de ecratilde do viacutedeo jogo Crysis 3 da Electronic Arts
11 Contexto
Esta dissertaccedilatildeo insere-se na aacuterea da computaccedilatildeo graacutefica mais especificamente na aacuterea da mo-
delaccedilatildeo tridimensional geraccedilatildeo procedimental de modelos 3D e interaccedilatildeo com os mesmos Estas
aacutereas intersectam-se em rumo a uma melhor interaccedilatildeo com recursos de geraccedilatildeo procedimental
num ambiente de modelaccedilatildeo manual
Esta dissertaccedilatildeo foi realizada na Faculdade de Engenharia da Universidade do Porto no Labo-
ratoacuterio de IampD de Computaccedilatildeo Graacutefica Interaccedilatildeo e Jogos
12 Motivaccedilatildeo e Problema
Os avanccedilos no desenvolvimento de hardware e software resultam numa necessidade de con-
teuacutedo tridimensional maior e mais detalhado criando uma maior carga nas equipas que os pro-
duzem Como mencionado previamente a utilizaccedilatildeo de modelaccedilatildeo procedimental para a criaccedilatildeo
raacutepida de ambientes tridimensionais eacute altamente apelativa para a induacutestria permitindo poupar
tempo e dinheiro comparativamente a uma abordagem manual
No entanto esta abordagem dificulta ao modelador a introduccedilatildeo de pormenores pois os meacute-
todos procedimentais satildeo definidos tipicamente por um conjunto de regras e paracircmetros de uma
forma natildeo intuitiva ou de controlo limitado A simples modificaccedilatildeo de um paracircmetro pode criar
uma reaccedilatildeo em cadeia de modificaccedilotildees que alteram por completo o modelo gerado Eacute assim ape-
lativo encontrar um meacutetodo que melhor aproveite as vantagens das duas abordagens permitindo
aos modeladores uma produccedilatildeo de conteuacutedo tridimensional mais raacutepida e controlada
2
Introduccedilatildeo
13 Objetivos
O objetivo principal deste trabalho eacute desenvolver uma soluccedilatildeo que melhor aproveite as vanta-
gens das duas principais abordagens agrave modelaccedilatildeo 3D para tal eacute possiacutevel identificar os seguintes
objetivos especiacuteficos
bull Investigar o estado da arte da aacuterea da modelaccedilatildeo procedimental e modelaccedilatildeo manual em
particular os avanccedilos realizados na interaccedilatildeo com os meacutetodos utilizados em modelaccedilatildeo pro-
cedimental
bull Estudar as metodologias possiacuteveis para abordar o problema
bull Desenvolver uma soluccedilatildeo utilizando uma abordagem possiacutevel com os recursos disponiacuteveis
bull Testar a soluccedilatildeo com utilizadores proficientes em modelaccedilatildeo de conteuacutedo 3D
14 Estrutura do documento
Esta dissertaccedilatildeo encontra-se dividida em 6 capiacutetulos anexos e referecircncias O capiacutetulo pre-
sente consiste numa descriccedilatildeo do problema da motivaccedilatildeo e dos objetivos propostos para a cor-
respondente realizaccedilatildeo No capiacutetulo 2 eacute realizado um levantamento do estado da arte nas aacutereas
da modelaccedilatildeo procedimental e modelaccedilatildeo manual em especial os avanccedilos realizados na interaccedilatildeo
com os meacutetodos utilizados em modelaccedilatildeo procedimental No capiacutetulo 3 satildeo discutidas as meto-
dologias estudadas para a melhor interaccedilatildeo entre as duas abordagens agrave modelaccedilatildeo sendo tambeacutem
apresentada com maior detalhe a metodologia a ser utilizada
No capiacutetulo 4 satildeo descritos alguns detalhes de implementaccedilatildeo da soluccedilatildeo desenvolvida base-
ada na metodologia discutida no capiacutetulo 3
No capiacutetulo 5 eacute apresentada a metodologia de teste utilizada para avaliar a soluccedilatildeo desenvol-
vida sendo tambeacutem apresentados os resultados obtidos
No capiacutetulo 6 o final da dissertaccedilatildeo satildeo resumidas algumas constataccedilotildees e conclusotildees rea-
lizadas sobre esta dissertaccedilatildeo Eacute efetuada tambeacutem uma listagem de alguns pontos para potencial
trabalho futuro
3
Introduccedilatildeo
4
Capiacutetulo 2
Estado da Arte e TrabalhosRelacionados
Neste capiacutetulo seraacute realizada uma revisatildeo bibliograacutefica que visa apresentar todos os avanccedilos
realizados nas aacutereas da interaccedilatildeo com os meacutetodos de geraccedilatildeo procedimental Seratildeo apresentados
os tipos de conteuacutedo passiacuteveis de serem produzidos por meio destes meacutetodos bem como as teacutec-
nicas utilizadas para a respetiva interaccedilatildeo e geraccedilatildeo Iratildeo tambeacutem ser apresentadas as abordagens
existentes para uma modelaccedilatildeo manual e as ferramentas existentes no mercado
21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundosvirtuais
O paradigma de interaccedilatildeo com meacutetodos de geraccedilatildeo procedimental eacute tradicionalmente funci-
onal Cada procedimento pode ser considerado uma caixa negra de operaccedilotildees que dependendo
de certos valores de entrada produz um ou mais resultados A interaccedilatildeo com estes nem sempre
eacute a mais intuitiva pois para atingir o resultado desejado envolve em repetidas tentativa e erro por
parte do utilizador No entanto em anos recentes tem existido um avanccedilo consideraacutevel nesta aacuterea
tentado conceder ao utilizador maior controlo sobre os meacutetodos de geraccedilatildeo procedimental com
abordagens como Sketch-based editores visuais e Modelaccedilatildeo Procedimental Invertida
211 Teacutecnicas Sketch-based
Esta abordagem tenta aproximar o tipo de interaccedilatildeo com que os principais utilizadores de
meacutetodos de Modelaccedilatildeo Procedimental estatildeo familiarizados Noccedilotildees como Brushes e Sketches satildeo
alguns dos conceitos mais populares entre designers profissionais
5
Estado da Arte e Trabalhos Relacionados
2111 Terrenos
De Carpentier et al [dCB09] propuseram um meacutetodo de ediccedilatildeo de terrenos no qual eacute dada ao
utilizador a possibilidade de alterar o heightfield atraveacutes de procedural brushes tentando combinar
a interaccedilatildeo manual localizada com a modificaccedilatildeo da parametrizaccedilatildeo por completo de heightfields
Esta abordagem eacute capaz de produzir alteraccedilotildees a tempo real graccedilas agrave respetiva implementaccedilatildeo
com shaders
Smelik et al [STdKB10] seguindo a respetiva proposta de modelaccedilatildeo de mundos virtuais
[STdKB08] propotildeem a utilizaccedilatildeo da abordagem Procedural sketching e demonstram-na num
protoacutetipo intitulado de SketchaWorld Esta abordagem eacute dividida em dois principais modos de
interaccedilatildeo (Figura 21) Landscape Mode e Feature Mode
Figura 21 Procedural sketching of virtual worlds por Smelik et al [STdKB10]
No primeiro o utilizador interage com uma vista top-down do terreno divido em grelha e eacute
capaz de definir a informaccedilatildeo geoloacutegica de cada ceacutelula atraveacutes do uso de Brushes Em Feature
Mode o utilizador manipula pontos de controlo correspondendo a vetores ou poliacutegonos que deli-
mitam a localizaccedilatildeo de cidades rios e vegetaccedilatildeo A ferramenta fornece feedback da construccedilatildeo do
terreno a um ritmo consideraacutevel para uma interaccedilatildeo fluida Esta tambeacutem dispotildee de funcionalida-
des como undo e redo para uma melhorar a interaccedilatildeo entre o utilizador e a ferramenta permitindo
assim a introduccedilatildeo de alteraccedilotildees e caso estas natildeo sejam desejadas pelo utilizador estas podem
ser desfeitas rapidamente Gain et al [GMSe09] propotildeem uma soluccedilatildeo que permite ao utilizador
esboccedilar as silhuetas e limites de corpos montanhosos a serem gerados
6
Estado da Arte e Trabalhos Relacionados
2112 Estradas
Num esforccedilo de melhorar a interaccedilatildeo com path layouts Singh et al [SM08] desenvolveram a
ferramenta Drive que permite a conceptualizaccedilatildeo de redes rodoviaacuterias tridimensionais por meio
de esboccedilos que satildeo posteriormente aproximados a clotoacuteides (Curvas em que o raio varia line-
armente) Com esta abordagem eacute possiacutevel produzir itineraacuterios em que as transiccedilotildees entre raios
de curvatura satildeo lineares tornando-os assim adequados para a conduccedilatildeo A ferramenta tambeacutem
introduz Terrain sensitive sketching que por meios automaacuteticos coloca sinalizaccedilatildeo no percurso e
vegetaccedilatildeo nas redondezas
2113 Vegetaccedilatildeo
Figura 22 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et al[IOI06b IOI06a]
O trabalho de Ijiri et al [IOI06b IOI06a] apresenta uma teacutecnica que atraveacutes de traccedilados defi-
nidos pelo utilizador (Figura 22) permite a manipulaccedilatildeo da direccedilatildeo de crescimento de vegetaccedilatildeo
produzida por L-Systems uma abordagem jaacute muito estudada para a criaccedilatildeo de vegetaccedilatildeo pro-
posta por Lindenmayer [Lin68] como um tipo de gramaacutetica formal capaz de representar padrotildees
e geometria fractal existente na vegetaccedilatildeo Em 1988 foi proposto por Prusinkiewicz [PLH88] a
utilizaccedilatildeo de L-systems para a modelaccedilatildeo de vegetaccedilatildeo Ao longo das ultimas deacutecadas tecircm sido
realizados avanccedilos consideraacuteveis na produccedilatildeo de vegetaccedilatildeo realiacutestica [WP95] e a respetiva inte-
raccedilatildeo com o seu meio ambiente [MP96 Pru00] tentado assim produzir vegetaccedilatildeo que melhor
simule o comportamento fiacutesico e bioloacutegico de vegetaccedilatildeo real
Mais recentemente o trabalho de Palubicky et al [PHL+09] foi expandido e transportado
para uma aplicaccedilatildeo para dispositivos iPad em que o modelador tem um controlo fino sobre o
crescimento de uma aacutervore Utilizando o conceito de tree self-organization Longay et al criaram
7
Estado da Arte e Trabalhos Relacionados
a ferramenta TreeSketch 23 que estimula a competiccedilatildeo entre os ramos de uma aacutervore por espaccedilo
e luz dentro dos paracircmetros e inputs visuais dados pelo utilizador [LRBP12]
Figura 23 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch
212 Editores Visuais
Numa tentativa de melhorar a interaccedilatildeo com modelaccedilatildeo procedimental baseada em gramaacuteticas
[WWSR03 MWH+06] Lipp et al propuseram uma abordagem que permite a manipulaccedilatildeo direta
do resultado produzido por uma gramaacutetica O utilizador pode manipular diretamente no objeto as
respetivas dimensotildees e configuraccedilotildees [LWW08]
Mais recentemente Krecklau et al [KK12] introduziram uma abordagem que permite a ge-
raccedilatildeo de cenas a partir de primitivas de alto niacutevel e a correspondente manipulaccedilatildeo por interaccedilatildeo
direta na cena consequentemente permitindo a utilizadores menos experientes a utilizaccedilatildeo de
gramaacuteticas procedimentais complexas sem a necessidade de interaccedilatildeo textual com as mesmas
2121 Visual Node Based
Editores Visual Node Based satildeo utilizados em muitas aplicaccedilotildees comercias como meio de
dar ao utilizador feedback visual do fluxo de informaccedilatildeo Encontra-se em editores de shaders
[Hol15 Aut15b] editores de animaccedilotildees [Tec15] e em editores de texturas [Cod15] A vasta uti-
lizaccedilatildeo da teacutecnica na aacuterea de produccedilatildeo de conteuacutedo 3D por utilizadores com pouca experiecircncia
de programaccedilatildeo levou a que investigadores a utilizassem para a especificaccedilatildeo de gramaacuteticas de
produccedilatildeo
Nesse contexto Patow [Pat12] desenvolveu uma soluccedilatildeo para a construccedilatildeo e manipulaccedilatildeo de
gramaacuteticas por meio de um editor visual onde noacutes que representam operaccedilotildees geomeacutetricas dos
correspondentes antecessores transmitem o resultado aos noacutes sucessores Na mesma publica-
ccedilatildeo Patow realccedila a importacircncia que esta abordagem acarreta para a modelaccedilatildeo procedimental de
edifiacutecios e admite que existe ainda muito potencial por explorar
8
Estado da Arte e Trabalhos Relacionados
Mais recentemente o trabalho de Silva et al [SMBC13] apresenta uma metodologia de edi-
ccedilatildeo em que grafos podem ser encapsulados em noacutes designados Component capazes de representar
construccedilotildees complexas Os noacutes podem ser facilmente introduzidos noutros grafos e editados por
meio de filtros de fluxo colocados nas arestas ou por restriccedilotildees que auxiliam a especificar a utili-
zaccedilatildeo dos noacutes (Figura 24)
Figura 24 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13]
213 Modelaccedilatildeo Procedimental Invertida
Inverse PM eacute uma teacutecnica em que um dado modelo de entrada eacute aproximado a uma represen-
taccedilatildeo procedimental
Aliaga et al [ARB07] apresenta a reconstruccedilatildeo de edifiacutecios por meio de fotografias Nesta
abordagem o utilizador define os limites das fachadas do edifiacutecio criando uma representaccedilatildeo
minimalista De seguida eacute automaticamente aproximada uma gramaacutetica que melhor representa
o edifiacutecio em questatildeo Com os trabalhos de Šrsquotava et al [ŠBM+10] na parametrizaccedilatildeo de arte
vetorial 2D e de Mitra et al [MGP06] em encontrar simetrias em objetos tridimensionais Bokeloh
et al [BWS10] aplica estes conceitos para a descoberta de simetrias nos objetos e a consequente
aproximaccedilatildeo de gramaacuteticas que definam o objeto em questatildeo
As abordagens atuais focam-se em Modelaccedilatildeo invertida de ambientes urbanos no entanto
Vanegas et al [VGDA+12] demonstram uma metodologia de aproximaccedilatildeo de gramaacuteticas capazes
de representar para aleacutem de edifiacutecios sistemas complexos de vegetaccedilatildeo aproximados a um objeto
jaacute existente
9
Estado da Arte e Trabalhos Relacionados
22 Modelaccedilatildeo 3D Manual
Para a produccedilatildeo de objetos tridimensionais os modeladores utilizam ferramentas dedicadas
que lhes datildeo um controlo total sobre o modelo a ser construiacutedo Estes variam em metaacuteforas de
interface e em puacuteblico alvo Nesta secccedilatildeo vatildeo ser abordadas as teacutecnicas de modelaccedilatildeo atualmente
utilizadas por estas ferramentas e seratildeo listadas as ferramentas existentes no mercado e as respeti-
vas funcionalidades principais
221 Teacutecnicas de Modelaccedilatildeo Manual
2211 Polygon Modelling
Polygon Modelling eacute uma abordagem para a representaccedilatildeo de superfiacutecies tridimensionais utili-
zando poliacutegonos estes satildeo representados por veacutertices e arestas e em grupos formam uma Polygon
Mesh que pode ser armazenada de muacuteltiplas formas [TM06 Bau72 Smi06] Eacute possiacutevel criar ma-
lhas veacutertice a veacutertice manualmente No entanto eacute comum a respetiva manipulaccedilatildeo em software
graacutefico concedendo aos modeladores ferramentas interativas como Blender Autodesk Maya e 3D
Studio Max
Figura 25 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14]
Uma das abordagens mais comuns eacute denominada Box Modelling na qual uma forma geomeacute-
trica considerada uma primitiva (ie cubo esfera cilindro) eacute esculpida iterativamente por pas-
sos de subdivisatildeo do objeto e subsequente manipulaccedilatildeo da geometria ateacute se obter o objeto final
[Jon02 sub14] A figura 25 demonstra da teacutecnica Box Modelling para a modelaccedilatildeo de uma face
Esta abordagem pode ser considerada uma abordagem Subtrativa pois eacute atraveacutes da reduccedilatildeo de um
objeto base que eacute obtido o objeto desejado
10
Estado da Arte e Trabalhos Relacionados
O polygon modelling caracteriza-se pelo controlo direto sobre a colocaccedilatildeo de cada veacutertice de
uma superfiacutecie permitindo dessa forma um controlo fino e preciso sobre o resultado a produzir
2212 NURBS
NURBS ou Non-uniform rational B-spline eacute uma generalizaccedilatildeo de B-Splines e Curvas de Beacute-
zier [KR79 Cab92] um modelo matemaacutetico usado para representar curvas e superfiacutecies com
grande precisatildeo e flexibilidade (Figura 26) Eacute principalmente utilizado em aacutereas da computaccedilatildeo
graacutefica (CAD CAM CAE) onde a precisatildeo dos modelos obtidos eacute muito importante Inicialmente
estudada por Matemaacuteticos como I J Schoenberg [Cob84] foi aplicada em sistemas CAD para a
modelaccedilatildeo na induacutestria Automoacutevel [Beacute83 Beacutez81 Bez68]
Figura 26 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modeloNURBS
2213 Digital Sculpting
Digital Sculpting eacute a adaptaccedilatildeo de teacutecnicas utilizadas para moldar materiais como o barro agrave
modelaccedilatildeo 3D Estas ferramentas permitem ao modelador empurrar puxar polir vincare
adicionar ou remover volume Perry et al [PF01] introduziram Kizamu um dos primeiros passos
na aacuterea do Digital Sculpting Os modelos satildeo representados no que eacute chamado de Adaptively Sam-
pled Distance Fields (ADF) [FPRJ00] que permite representar dados volumeacutetricos que tornam o
processo de Digital Sculpting possiacutevel
222 Ferramentas de Modelaccedilatildeo 3D
2221 Blender
O Blender [ble15a] eacute uma ferramenta profissional de modelaccedilatildeo de coacutedigo aberto desen-
volvida pela Blender Foundation Suporta uma grande variedade de primitivas geomeacutetricas in-
11
Estado da Arte e Trabalhos Relacionados
Figura 27 Interface da ferramenta Blender
cluiacutendo Polygon Meshes curvas de Bezier superfiacutecies NURBS Metaballs e Digital Sculpting
Esta destaca-se por ser gratuita e pela facilidade de criar extensotildees [ble15b] usando a API Python
existente [ble15c] que permite adicionar novas funcionalidades agrave ferramenta
2222 Autodesk Maya
Figura 28 Interface da ferramenta Autodesk Maya
O Autodesk Maya [Aut15b] eacute uma ferramenta de produccedilatildeo de conteuacutedo 3D utilizada nas induacutes-
trias do cinema televisatildeo videojogos e arquitetura Eacute de coacutedigo fechado e a respetiva utilizaccedilatildeo
requer que o utilizador possua uma licenccedila Tal como o Blender o Maya daacute aos modeladores
ferramentas para estes criarem objetos de uma forma interativa 28 Apesar de ser uma ferramenta
versaacutetil e capaz de satisfazer as necessidades de todas induacutestrias acima referidas o Autodesk
Maya tende a ser mais utilizado pela induacutestria do Cinema devido agrave vasta customizaccedilatildeo possiacutevel de
aspetos importantes para esta induacutestria como Animaccedilatildeo e VFX [Aut15c]
12
Estado da Arte e Trabalhos Relacionados
2223 Autodesk 3D Studio Max
O 3D Studio Max [Aut15a] eacute outra ferramenta da Autodesk em muitos aspetos semelhante
ao Maya No entanto o 3DS Max estaacute apenas disponiacutevel para maacutequinas de sistema operativo
Windows e sempre foi mais utilizado pela induacutestria dos videojogos para a criaccedilatildeo de modelos 3D
Tal como o Autodesk Maya este dispotildee de poderosos motores de renderizaccedilatildeo Ray Tracing
2224 Zbrush
O Zbrush [Pix15] eacute uma ferramenta de modelaccedilatildeo 3D baseada nos conceitos de Digital Mo-
delling Daacute ao artista muacuteltiplas Brushes que permitem manipular o objeto a ser definido com
paradigmas transportados de outras aacutereas artiacutesticas Pode tornar mais acessiacutevel para um utilizador
pouco experiente com alguns paradigmas da Computaccedilatildeo Graacutefica a modelaccedilatildeo de objetos com
consideraacutevel detalhe e liberdade artiacutestica [Spe11]
23 Sumaacuterio
Apoacutes o levantamento do estado da arte eacute possiacutevel constatar que as ferramentas de modelaccedilatildeo
manual satildeo a escolha de eleiccedilatildeo para contextos em que o modelador deseja o maior niacutevel controlo
possiacutevel sobre o objeto a ser produzido No entanto considerando ferramentas de modelaccedilatildeo
procedimental tem existido um esforccedilo por parte desta comunidade para tornar a correspondente
experiecircncia de utilizaccedilatildeo mais acessiacutevel a utilizadores pouco familiarizados com o funcionamento
do mesmo Por enquanto a utilizaccedilatildeo deste tipo de ferramentas ainda requer que o conteuacutedo
seja criado em ferramentas dedicadas completamente separadas das ferramentas tradicionais (ie
Maya Blender) essenciais para o trabalho artiacutestico levando a quebras no fluxo de trabalho
13
Estado da Arte e Trabalhos Relacionados
14
Capiacutetulo 3
Metodologia
Com os desenvolvimentos atuais na aacuterea de modelaccedilatildeo procedimental apresentados no capiacute-
tulo 2 eacute possiacutevel verificar que as soluccedilotildees de MP existentes permitem produzir variados tipos de
conteuacutedo tais como terrenos vegetaccedilatildeo edifiacutecios estradas e cidades por outro lado as respeti-
vas integraccedilotildees em ambientes de modelaccedilatildeo manual satildeo algo limitadas ou apenas disponiacuteveis em
ferramentas externas especializadas num uacutenico tipo de conteuacutedo
Da mesma forma como verificado em 21 foram efetuadas vaacuterias tentativas pela comunidade
envolvida em geraccedilatildeo procedimental no sentido a melhorar a interaccedilatildeo com ferramentas dedica-
das agrave geraccedilatildeo procedimental no entanto existe ainda uma grande margem para avanccedilo de uma
integraccedilatildeo geneacuterica destes processos numa ferramenta de modelaccedilatildeo manual Devido agrave falta de
soluccedilotildees que se integrem de forma transparente e acessiacutevel em ambientes de modelaccedilatildeo manual
pretende-se apresentar uma soluccedilatildeo com o objetivo de interligar as duas abordagens neste capiacute-
tulo Inicialmente seraacute apresentada em pormenor a arquitetura da soluccedilatildeo de seguida o protocolo
de comunicaccedilatildeo entre os dois ambientes de modelaccedilatildeo e finalmente seraacute proposto um meacutetodo de
trabalho no qual seraacute descrita a interaccedilatildeo ideal entre o modelador e a soluccedilatildeo proposta
31 Meacutetodo de Trabalho
Numa interaccedilatildeo ideal o modelador teria controlo absoluto sobre os meacutetodos de geraccedilatildeo proce-
dimental e seria possiacutevel modelar procedimentalmente sobre alteraccedilotildees manuais realizadas sobre
o objeto No entanto nem sempre eacute desejado esse niacutevel de controlo e interligaccedilatildeo entre as aborda-
gens Imaginando a modelaccedilatildeo de um edifiacutecio este eacute construiacutedo segundo meacutetodos procedimentais
e recebe como entrada um poliacutegono que delimita a fundaccedilatildeo assim como paracircmetros numeacutericos e
booleanos que definem a geometria resultante Depois de modelado procedimentalmente o objeto
eacute adicionado ao ambiente de modelaccedilatildeo manual onde o modelador pode realizar alteraccedilotildees em
detalhes na geometria ou mesmo alteraccedilotildees profundas na geometria do mesmo
15
Metodologia
Considerando uma situaccedilatildeo em que o modelador realizou alteraccedilotildees profundas na geometria
produzida como por exemplo a reparticcedilatildeo de uma das fachadas do edifiacutecio em trecircs fachadas
Assim que realizadas estas alteraccedilotildees o utilizador pretende alterar a altura do edifiacutecio alterando o
paracircmetro correspondente e requisitando uma atualizaccedilatildeo Para ser possiacutevel manter as alteraccedilotildees
realizadas manualmente e em simultacircneo respeitar as regras definidas pela geraccedilatildeo procedimen-
tal seria necessaacuterio converter estas alteraccedilotildees em regras possiacuteveis de definir no escopo do ambiente
de geraccedilatildeo procedimental
De qualquer das formas as alteraccedilotildees realizadas no ponto anterior podem simplesmente natildeo
fazer sentido apoacutes a aplicaccedilatildeo sobre o objeto que foi reproduzido seguindo as regras definias
por um procedimento Devido a esta limitaccedilatildeo eacute assumido que assim que o utilizador requisita
uma nova execuccedilatildeo de um procedimento o qual natildeo tem problemas em descartar as alteraccedilotildees
executadas manualmente sobre o objeto em questatildeo
Tendo em consideraccedilatildeo esta limitaccedilatildeo eacute possiacutevel estruturar um fluxo de trabalho que melhor
explore as vantagens e limitaccedilotildees de ambas as abordagens de geraccedilatildeo de conteuacutedo tridimensional
O utilizador tem uma panoacuteplia de conteuacutedos procedimentais ao seu dispor que podem ser definidas
via paracircmetros numeacutericos e geomeacutetricos O conteuacutedo eacute adicionado ao ambiente de modelaccedilatildeo ma-
nual e os paracircmetros podem ainda ser editados alterados ao custo de que as modificaccedilotildees manuais
realizadas sobre o objeto sejam descartadas
32 Metodologias de Interaccedilatildeo com o Utilizador
Em relaccedilatildeo agrave interaccedilatildeo com o utilizador foram estudadas trecircs abordagens para a interaccedilatildeo com
meacutetodos de geraccedilatildeo procedimental em ambiente de modelaccedilatildeo manual
321 Modificadores
O conceito de modificadores eacute jaacute utilizado em ambientes de modelaccedilatildeo manual eg no Blen-
der [Bap14 Ble15e] onde satildeo utilizados para realizar operaccedilotildees sobre objetos na cena sem destruir
a geometria subjacente apenas modificam a forma como os objetos satildeo percecionados pelo motor
de renderizaccedilatildeo Esta abordagem eacute uacutetil em situaccedilotildees onde o procedimento a ser executado en-
volve modificaccedilotildees sobre uma geometria base como tal permitindo realizar muacuteltiplas alteraccedilotildees
sobre um objeto podendo estas ser facilmente canceladas recuperando o objeto original No en-
tanto nem todos os recursos de geraccedilatildeo procedimental incidem sobre modificaccedilatildeo de geometria
Os meios de geraccedilatildeo procedimental em muitas situaccedilotildees produzem objetos e cenaacuterios uacutenicos e
independentes de qualquer geometria de entrada
322 Grafos
A abordagem de interaccedilatildeo via grafos eacute atualmente utilizada num ambiente de modelaccedilatildeo ma-
nual para a ediccedilatildeo de materiais [Ble15d] Tambeacutem chamada de Flow-Based Programming esta
16
Metodologia
abordagem permite apresentar ao utilizador os procedimentos como uma caixa negra com pos-
siacuteveis entradas e saiacutedas representadas como ligaccedilotildees de fluxo A correspondente utilizaccedilatildeo na
interaccedilatildeo com geraccedilatildeo procedimental pode permitir o encadeamento de muacuteltiplos procedimentos
No entanto a abordagem pode ser mais trabalhosa para o utilizador introduzindo um niacutevel de
interaccedilatildeo adicional para cada objeto introduzido na cena
323 Funccedilotildees
Esta abordagem disponibiliza ao utilizador cada recurso de geraccedilatildeo procedimental como uma
funccedilatildeo disponiacutevel a qualquer momento na interface da ferramenta de modelaccedilatildeo manual Aquando
da respetiva invocaccedilatildeo satildeo requisitados aos utilizadores os paracircmetros necessaacuterios agrave execuccedilatildeo
A abordagem em causa eacute potencialmente a mais faacutecil de adotar por parte dos utilizadores de
ferramentas de modelaccedilatildeo manual Devido agrave simplicidade na interaccedilatildeo assim como a reduzida
necessidade de tempo e recursos para a implementaccedilatildeo esta foi a abordagem de interaccedilatildeo utilizada
na soluccedilatildeo desenvolvida
33 Arquitetura da Soluccedilatildeo
Para abordar este problema eacute proposta a utilizaccedilatildeo de duas aplicaccedilotildees jaacute presentes no mer-
cado Uma aplicaccedilatildeo dedicada agrave modelaccedilatildeo procedimental e uma aplicaccedilatildeo de modelaccedilatildeo manual
Foi escolhida esta abordagem na medida em que eacute possiacutevel utilizar duas aplicaccedilotildees jaacute existentes
sendo possiacutevel dessa forma aproveitar os pontos fortes de cada soluccedilatildeo com o intuito de otimi-
zar o processo de criaccedilatildeo de novos cenaacuterios e conteuacutedo tridimensional Esta abordagem pode ser
representada como uma soluccedilatildeo estruturada numa arquitetura Cliente-Servidor em que a aplica-
ccedilatildeo de geraccedilatildeo procedimental eacute capaz de fornecer serviccedilos de geraccedilatildeo de conteuacutedo a um ou mais
clientes de modelaccedilatildeo Esta abordagem interliga as duas aplicaccedilotildees atraveacutes de um protocolo de
comunicaccedilatildeo Este permite ao utilizador da ferramenta de modelaccedilatildeo manual requisitar a produ-
ccedilatildeo de conteuacutedo seguindo os valores impostos pelo utilizador nos paracircmetros do procedimento
requisitado O protocolo eacute descrito em maior detalhe na secccedilatildeo 34
331 Vantagens
Faacutecil integraccedilatildeo em diferentes plataformas Devido agrave arquitetura ser baseada na comunicaccedilatildeo
entre duas aplicaccedilotildees por um protocolo de comunicaccedilatildeo geneacuterico eacute com alguma facili-
dade que se realiza a interligaccedilatildeo com diferentes soluccedilotildees de geraccedilatildeo procedimental ou de
modelaccedilatildeo manual Sendo assim possiacutevel a expansatildeo para novos ambientes de modelaccedilatildeo
manual ou mesmo introduzir novas soluccedilotildees de geraccedilatildeo procedimental
Escalabilidade A arquitetura proposta poderaacute permitir que esta seja implementada de modo a que
um servidor central de geraccedilatildeo procedimental sirva por exemplo num ambiente empresa-
rial como um repositoacuterio de recursos de geraccedilatildeo de conteuacutedos desta forma permitindo
17
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Conteuacutedo
1 Introduccedilatildeo 111 Contexto 212 Motivaccedilatildeo e Problema 213 Objetivos 314 Estrutura do documento 3
2 Estado da Arte e Trabalhos Relacionados 521 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais 5
211 Teacutecnicas Sketch-based 5212 Editores Visuais 8213 Modelaccedilatildeo Procedimental Invertida 9
22 Modelaccedilatildeo 3D Manual 10221 Teacutecnicas de Modelaccedilatildeo Manual 10222 Ferramentas de Modelaccedilatildeo 3D 11
23 Sumaacuterio 13
3 Metodologia 1531 Meacutetodo de Trabalho 1532 Metodologias de Interaccedilatildeo com o Utilizador 16
321 Modificadores 16322 Grafos 16323 Funccedilotildees 17
33 Arquitetura da Soluccedilatildeo 17331 Vantagens 17332 Desvantagens 18
34 Protocolo de Comunicaccedilatildeo 19
4 Implementaccedilatildeo 2141 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual 2142 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental 2243 Comunicaccedilatildeo 2344 Construccedilatildeo da Interface 2545 Execuccedilatildeo 26
5 Teste da Soluccedilatildeo e Resultados Obtidos 3151 Metodologia de Teste 3152 Resultados 36
ix
CONTEUacuteDO
6 Conclusotildees e Trabalho Futuro 3961 Trabalho Futuro 39
Referecircncias 41
A Mensagens JSON 47A1 JSON de Pedido de Abertura do Projeto Urban 47A2 JSON de Informaccedilatildeo do Projeto Urban 47A3 Exemplo de Pedido para Gerar um Grafo 49A4 Exemplo de Resposta de Erro do Servidor 50
B Principais Grafos do Projeto Urban 51
C Cenaacuterios Resultantes dos Testes com Utilizadores 55
x
Lista de Figuras
11 Captura de ecratilde do viacutedeo jogo Crysis 3 da Electronic Arts 2
21 Procedural sketching of virtual worlds por Smelik et al [STdKB10] 622 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et
al [IOI06b IOI06a] 723 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch 824 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13] 925 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14] 1026 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modelo
NURBS 1127 Interface da ferramenta Blender 1228 Interface da ferramenta Autodesk Maya 12
31 Diagrama do sistema proposto 18
41 Editor Construct em execuccedilatildeo 2242 Grafo exemplo e respetiva geometria produzida 2343 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct 2444 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct
a abrir 2445 Barra de ferramentas depois de aberto um projeto 2646 JSON enviado ao servidor para a execuccedilatildeo de um grafo 2647 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base 2748 Edifiacutecio depois de adicionado agrave cena 2749 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores 28410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular 28411 Custom Properties de um objeto produzido por um grafo Cube 29
51 Cenaacuterio requisitado aos utilizadores 3152 Exemplos de resultados possiacuteveis do grafo Building 3253 Exemplo de resultado do grafo Window 3354 Exemplo de resultado do grafo Door 3355 Exemplo de resultado do grafo CityStreets 3456 Cursor 3D do Blender 36
B1 Grafo Building como visto no editor Construct 51B2 Grafo CityStreets como visto no editor Construct 52B3 Grafo Window como visto no editor Construct 52B4 Grafo Door como visto no editor Construct 53
xi
LISTA DE FIGURAS
B5 Grafo DetailedRoof como visto no editor Construct 53
C1 Cenaacuterio criado pelo utilizador 3 55C2 Cenaacuterio criado pelo utilizador 4 56
xii
Lista de Tabelas
41 Estatiacutesticas dos principais foacuteruns 2242 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender 25
51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e otempo utilizado para construir o cenaacuterio utilizando o add-on desenvolvido 37
52 Resultados da avaliaccedilatildeo de usabilidade do sistema 37
xiii
LISTA DE TABELAS
xiv
Abreviaturas e Siacutembolos
API Application Programming InterfaceCAD Computer-Aided DesignCASE Computer-Aided Software EngineeringCGI Computer-Generated ImageJSON JavaScript Object NotationMP Modelaccedilatildeo ProcedimentalGP Geraccedilatildeo ProcedimentalMM Modelaccedilatildeo ManualSUS System Usability ScaleTCP Transmission Control Protocol
xv
Capiacutetulo 1
Introduccedilatildeo
A criaccedilatildeo de ambientes virtuais eacute um toacutepico muito relevante em computaccedilatildeo graacutefica e reali-
dade virtual tendo aplicaccedilotildees na induacutestria do entretenimento para a produccedilatildeo filmes e videojogos
entre outros Na induacutestria do cinema estes ambientes virtuais satildeo utilizados para criar imagens
impossiacuteveis de reproduzir atraveacutes de meios praacuteticos Na induacutestria dos videojogos cada vez mais
encontramos jogos em ambientes de maior dimensatildeo e com um elevado niacutevel de detalhe (Figura
11)
Em modelaccedilatildeo a abordagem tradicional eacute a de Modelaccedilatildeo Manual que permite ao artista
controlo completo e fino do objeto a ser criado No que toca agrave criaccedilatildeo de cenaacuterios de elevadas
dimensotildees como montanhas cidades estradas e vegetaccedilatildeo a abordagem tradicional torna-se cada
vez menos viaacutevel A introduccedilatildeo de meacutetodos procedimentais na geraccedilatildeo destes conteuacutedos permite
produzir resultados de alta qualidade com alguma facilidade produzindo cenaacuterios numa fraccedilatildeo do
tempo e do custo correspondentes agrave respetiva produccedilatildeo por meio de modelaccedilatildeo manual
Apesar do grande impacto positivo que esta abordagem trouxe para a induacutestria de um ponto
de vista artiacutestico nem sempre o resultado eacute o mais desejado desta forma podendo necessitar
da introduccedilatildeo de pormenores e alteraccedilotildees finas agrave respetiva geometria para produzir um resultado
uacutenico e mais proacuteximo da visatildeo artiacutestica do criador Para tal tecircm sido desenvolvidas teacutecnicas
para uma interaccedilatildeo mais intuitiva com a modelaccedilatildeo procedimental tentado dar ao modelador um
melhor controlo sobre os meacutetodos automatizados que lhes estatildeo subjacentes natildeo possuindo ainda
o niacutevel de controlo fino que uma ferramenta de modelaccedilatildeo manual pode oferecer
1
Introduccedilatildeo
Figura 11 Captura de ecratilde do viacutedeo jogo Crysis 3 da Electronic Arts
11 Contexto
Esta dissertaccedilatildeo insere-se na aacuterea da computaccedilatildeo graacutefica mais especificamente na aacuterea da mo-
delaccedilatildeo tridimensional geraccedilatildeo procedimental de modelos 3D e interaccedilatildeo com os mesmos Estas
aacutereas intersectam-se em rumo a uma melhor interaccedilatildeo com recursos de geraccedilatildeo procedimental
num ambiente de modelaccedilatildeo manual
Esta dissertaccedilatildeo foi realizada na Faculdade de Engenharia da Universidade do Porto no Labo-
ratoacuterio de IampD de Computaccedilatildeo Graacutefica Interaccedilatildeo e Jogos
12 Motivaccedilatildeo e Problema
Os avanccedilos no desenvolvimento de hardware e software resultam numa necessidade de con-
teuacutedo tridimensional maior e mais detalhado criando uma maior carga nas equipas que os pro-
duzem Como mencionado previamente a utilizaccedilatildeo de modelaccedilatildeo procedimental para a criaccedilatildeo
raacutepida de ambientes tridimensionais eacute altamente apelativa para a induacutestria permitindo poupar
tempo e dinheiro comparativamente a uma abordagem manual
No entanto esta abordagem dificulta ao modelador a introduccedilatildeo de pormenores pois os meacute-
todos procedimentais satildeo definidos tipicamente por um conjunto de regras e paracircmetros de uma
forma natildeo intuitiva ou de controlo limitado A simples modificaccedilatildeo de um paracircmetro pode criar
uma reaccedilatildeo em cadeia de modificaccedilotildees que alteram por completo o modelo gerado Eacute assim ape-
lativo encontrar um meacutetodo que melhor aproveite as vantagens das duas abordagens permitindo
aos modeladores uma produccedilatildeo de conteuacutedo tridimensional mais raacutepida e controlada
2
Introduccedilatildeo
13 Objetivos
O objetivo principal deste trabalho eacute desenvolver uma soluccedilatildeo que melhor aproveite as vanta-
gens das duas principais abordagens agrave modelaccedilatildeo 3D para tal eacute possiacutevel identificar os seguintes
objetivos especiacuteficos
bull Investigar o estado da arte da aacuterea da modelaccedilatildeo procedimental e modelaccedilatildeo manual em
particular os avanccedilos realizados na interaccedilatildeo com os meacutetodos utilizados em modelaccedilatildeo pro-
cedimental
bull Estudar as metodologias possiacuteveis para abordar o problema
bull Desenvolver uma soluccedilatildeo utilizando uma abordagem possiacutevel com os recursos disponiacuteveis
bull Testar a soluccedilatildeo com utilizadores proficientes em modelaccedilatildeo de conteuacutedo 3D
14 Estrutura do documento
Esta dissertaccedilatildeo encontra-se dividida em 6 capiacutetulos anexos e referecircncias O capiacutetulo pre-
sente consiste numa descriccedilatildeo do problema da motivaccedilatildeo e dos objetivos propostos para a cor-
respondente realizaccedilatildeo No capiacutetulo 2 eacute realizado um levantamento do estado da arte nas aacutereas
da modelaccedilatildeo procedimental e modelaccedilatildeo manual em especial os avanccedilos realizados na interaccedilatildeo
com os meacutetodos utilizados em modelaccedilatildeo procedimental No capiacutetulo 3 satildeo discutidas as meto-
dologias estudadas para a melhor interaccedilatildeo entre as duas abordagens agrave modelaccedilatildeo sendo tambeacutem
apresentada com maior detalhe a metodologia a ser utilizada
No capiacutetulo 4 satildeo descritos alguns detalhes de implementaccedilatildeo da soluccedilatildeo desenvolvida base-
ada na metodologia discutida no capiacutetulo 3
No capiacutetulo 5 eacute apresentada a metodologia de teste utilizada para avaliar a soluccedilatildeo desenvol-
vida sendo tambeacutem apresentados os resultados obtidos
No capiacutetulo 6 o final da dissertaccedilatildeo satildeo resumidas algumas constataccedilotildees e conclusotildees rea-
lizadas sobre esta dissertaccedilatildeo Eacute efetuada tambeacutem uma listagem de alguns pontos para potencial
trabalho futuro
3
Introduccedilatildeo
4
Capiacutetulo 2
Estado da Arte e TrabalhosRelacionados
Neste capiacutetulo seraacute realizada uma revisatildeo bibliograacutefica que visa apresentar todos os avanccedilos
realizados nas aacutereas da interaccedilatildeo com os meacutetodos de geraccedilatildeo procedimental Seratildeo apresentados
os tipos de conteuacutedo passiacuteveis de serem produzidos por meio destes meacutetodos bem como as teacutec-
nicas utilizadas para a respetiva interaccedilatildeo e geraccedilatildeo Iratildeo tambeacutem ser apresentadas as abordagens
existentes para uma modelaccedilatildeo manual e as ferramentas existentes no mercado
21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundosvirtuais
O paradigma de interaccedilatildeo com meacutetodos de geraccedilatildeo procedimental eacute tradicionalmente funci-
onal Cada procedimento pode ser considerado uma caixa negra de operaccedilotildees que dependendo
de certos valores de entrada produz um ou mais resultados A interaccedilatildeo com estes nem sempre
eacute a mais intuitiva pois para atingir o resultado desejado envolve em repetidas tentativa e erro por
parte do utilizador No entanto em anos recentes tem existido um avanccedilo consideraacutevel nesta aacuterea
tentado conceder ao utilizador maior controlo sobre os meacutetodos de geraccedilatildeo procedimental com
abordagens como Sketch-based editores visuais e Modelaccedilatildeo Procedimental Invertida
211 Teacutecnicas Sketch-based
Esta abordagem tenta aproximar o tipo de interaccedilatildeo com que os principais utilizadores de
meacutetodos de Modelaccedilatildeo Procedimental estatildeo familiarizados Noccedilotildees como Brushes e Sketches satildeo
alguns dos conceitos mais populares entre designers profissionais
5
Estado da Arte e Trabalhos Relacionados
2111 Terrenos
De Carpentier et al [dCB09] propuseram um meacutetodo de ediccedilatildeo de terrenos no qual eacute dada ao
utilizador a possibilidade de alterar o heightfield atraveacutes de procedural brushes tentando combinar
a interaccedilatildeo manual localizada com a modificaccedilatildeo da parametrizaccedilatildeo por completo de heightfields
Esta abordagem eacute capaz de produzir alteraccedilotildees a tempo real graccedilas agrave respetiva implementaccedilatildeo
com shaders
Smelik et al [STdKB10] seguindo a respetiva proposta de modelaccedilatildeo de mundos virtuais
[STdKB08] propotildeem a utilizaccedilatildeo da abordagem Procedural sketching e demonstram-na num
protoacutetipo intitulado de SketchaWorld Esta abordagem eacute dividida em dois principais modos de
interaccedilatildeo (Figura 21) Landscape Mode e Feature Mode
Figura 21 Procedural sketching of virtual worlds por Smelik et al [STdKB10]
No primeiro o utilizador interage com uma vista top-down do terreno divido em grelha e eacute
capaz de definir a informaccedilatildeo geoloacutegica de cada ceacutelula atraveacutes do uso de Brushes Em Feature
Mode o utilizador manipula pontos de controlo correspondendo a vetores ou poliacutegonos que deli-
mitam a localizaccedilatildeo de cidades rios e vegetaccedilatildeo A ferramenta fornece feedback da construccedilatildeo do
terreno a um ritmo consideraacutevel para uma interaccedilatildeo fluida Esta tambeacutem dispotildee de funcionalida-
des como undo e redo para uma melhorar a interaccedilatildeo entre o utilizador e a ferramenta permitindo
assim a introduccedilatildeo de alteraccedilotildees e caso estas natildeo sejam desejadas pelo utilizador estas podem
ser desfeitas rapidamente Gain et al [GMSe09] propotildeem uma soluccedilatildeo que permite ao utilizador
esboccedilar as silhuetas e limites de corpos montanhosos a serem gerados
6
Estado da Arte e Trabalhos Relacionados
2112 Estradas
Num esforccedilo de melhorar a interaccedilatildeo com path layouts Singh et al [SM08] desenvolveram a
ferramenta Drive que permite a conceptualizaccedilatildeo de redes rodoviaacuterias tridimensionais por meio
de esboccedilos que satildeo posteriormente aproximados a clotoacuteides (Curvas em que o raio varia line-
armente) Com esta abordagem eacute possiacutevel produzir itineraacuterios em que as transiccedilotildees entre raios
de curvatura satildeo lineares tornando-os assim adequados para a conduccedilatildeo A ferramenta tambeacutem
introduz Terrain sensitive sketching que por meios automaacuteticos coloca sinalizaccedilatildeo no percurso e
vegetaccedilatildeo nas redondezas
2113 Vegetaccedilatildeo
Figura 22 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et al[IOI06b IOI06a]
O trabalho de Ijiri et al [IOI06b IOI06a] apresenta uma teacutecnica que atraveacutes de traccedilados defi-
nidos pelo utilizador (Figura 22) permite a manipulaccedilatildeo da direccedilatildeo de crescimento de vegetaccedilatildeo
produzida por L-Systems uma abordagem jaacute muito estudada para a criaccedilatildeo de vegetaccedilatildeo pro-
posta por Lindenmayer [Lin68] como um tipo de gramaacutetica formal capaz de representar padrotildees
e geometria fractal existente na vegetaccedilatildeo Em 1988 foi proposto por Prusinkiewicz [PLH88] a
utilizaccedilatildeo de L-systems para a modelaccedilatildeo de vegetaccedilatildeo Ao longo das ultimas deacutecadas tecircm sido
realizados avanccedilos consideraacuteveis na produccedilatildeo de vegetaccedilatildeo realiacutestica [WP95] e a respetiva inte-
raccedilatildeo com o seu meio ambiente [MP96 Pru00] tentado assim produzir vegetaccedilatildeo que melhor
simule o comportamento fiacutesico e bioloacutegico de vegetaccedilatildeo real
Mais recentemente o trabalho de Palubicky et al [PHL+09] foi expandido e transportado
para uma aplicaccedilatildeo para dispositivos iPad em que o modelador tem um controlo fino sobre o
crescimento de uma aacutervore Utilizando o conceito de tree self-organization Longay et al criaram
7
Estado da Arte e Trabalhos Relacionados
a ferramenta TreeSketch 23 que estimula a competiccedilatildeo entre os ramos de uma aacutervore por espaccedilo
e luz dentro dos paracircmetros e inputs visuais dados pelo utilizador [LRBP12]
Figura 23 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch
212 Editores Visuais
Numa tentativa de melhorar a interaccedilatildeo com modelaccedilatildeo procedimental baseada em gramaacuteticas
[WWSR03 MWH+06] Lipp et al propuseram uma abordagem que permite a manipulaccedilatildeo direta
do resultado produzido por uma gramaacutetica O utilizador pode manipular diretamente no objeto as
respetivas dimensotildees e configuraccedilotildees [LWW08]
Mais recentemente Krecklau et al [KK12] introduziram uma abordagem que permite a ge-
raccedilatildeo de cenas a partir de primitivas de alto niacutevel e a correspondente manipulaccedilatildeo por interaccedilatildeo
direta na cena consequentemente permitindo a utilizadores menos experientes a utilizaccedilatildeo de
gramaacuteticas procedimentais complexas sem a necessidade de interaccedilatildeo textual com as mesmas
2121 Visual Node Based
Editores Visual Node Based satildeo utilizados em muitas aplicaccedilotildees comercias como meio de
dar ao utilizador feedback visual do fluxo de informaccedilatildeo Encontra-se em editores de shaders
[Hol15 Aut15b] editores de animaccedilotildees [Tec15] e em editores de texturas [Cod15] A vasta uti-
lizaccedilatildeo da teacutecnica na aacuterea de produccedilatildeo de conteuacutedo 3D por utilizadores com pouca experiecircncia
de programaccedilatildeo levou a que investigadores a utilizassem para a especificaccedilatildeo de gramaacuteticas de
produccedilatildeo
Nesse contexto Patow [Pat12] desenvolveu uma soluccedilatildeo para a construccedilatildeo e manipulaccedilatildeo de
gramaacuteticas por meio de um editor visual onde noacutes que representam operaccedilotildees geomeacutetricas dos
correspondentes antecessores transmitem o resultado aos noacutes sucessores Na mesma publica-
ccedilatildeo Patow realccedila a importacircncia que esta abordagem acarreta para a modelaccedilatildeo procedimental de
edifiacutecios e admite que existe ainda muito potencial por explorar
8
Estado da Arte e Trabalhos Relacionados
Mais recentemente o trabalho de Silva et al [SMBC13] apresenta uma metodologia de edi-
ccedilatildeo em que grafos podem ser encapsulados em noacutes designados Component capazes de representar
construccedilotildees complexas Os noacutes podem ser facilmente introduzidos noutros grafos e editados por
meio de filtros de fluxo colocados nas arestas ou por restriccedilotildees que auxiliam a especificar a utili-
zaccedilatildeo dos noacutes (Figura 24)
Figura 24 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13]
213 Modelaccedilatildeo Procedimental Invertida
Inverse PM eacute uma teacutecnica em que um dado modelo de entrada eacute aproximado a uma represen-
taccedilatildeo procedimental
Aliaga et al [ARB07] apresenta a reconstruccedilatildeo de edifiacutecios por meio de fotografias Nesta
abordagem o utilizador define os limites das fachadas do edifiacutecio criando uma representaccedilatildeo
minimalista De seguida eacute automaticamente aproximada uma gramaacutetica que melhor representa
o edifiacutecio em questatildeo Com os trabalhos de Šrsquotava et al [ŠBM+10] na parametrizaccedilatildeo de arte
vetorial 2D e de Mitra et al [MGP06] em encontrar simetrias em objetos tridimensionais Bokeloh
et al [BWS10] aplica estes conceitos para a descoberta de simetrias nos objetos e a consequente
aproximaccedilatildeo de gramaacuteticas que definam o objeto em questatildeo
As abordagens atuais focam-se em Modelaccedilatildeo invertida de ambientes urbanos no entanto
Vanegas et al [VGDA+12] demonstram uma metodologia de aproximaccedilatildeo de gramaacuteticas capazes
de representar para aleacutem de edifiacutecios sistemas complexos de vegetaccedilatildeo aproximados a um objeto
jaacute existente
9
Estado da Arte e Trabalhos Relacionados
22 Modelaccedilatildeo 3D Manual
Para a produccedilatildeo de objetos tridimensionais os modeladores utilizam ferramentas dedicadas
que lhes datildeo um controlo total sobre o modelo a ser construiacutedo Estes variam em metaacuteforas de
interface e em puacuteblico alvo Nesta secccedilatildeo vatildeo ser abordadas as teacutecnicas de modelaccedilatildeo atualmente
utilizadas por estas ferramentas e seratildeo listadas as ferramentas existentes no mercado e as respeti-
vas funcionalidades principais
221 Teacutecnicas de Modelaccedilatildeo Manual
2211 Polygon Modelling
Polygon Modelling eacute uma abordagem para a representaccedilatildeo de superfiacutecies tridimensionais utili-
zando poliacutegonos estes satildeo representados por veacutertices e arestas e em grupos formam uma Polygon
Mesh que pode ser armazenada de muacuteltiplas formas [TM06 Bau72 Smi06] Eacute possiacutevel criar ma-
lhas veacutertice a veacutertice manualmente No entanto eacute comum a respetiva manipulaccedilatildeo em software
graacutefico concedendo aos modeladores ferramentas interativas como Blender Autodesk Maya e 3D
Studio Max
Figura 25 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14]
Uma das abordagens mais comuns eacute denominada Box Modelling na qual uma forma geomeacute-
trica considerada uma primitiva (ie cubo esfera cilindro) eacute esculpida iterativamente por pas-
sos de subdivisatildeo do objeto e subsequente manipulaccedilatildeo da geometria ateacute se obter o objeto final
[Jon02 sub14] A figura 25 demonstra da teacutecnica Box Modelling para a modelaccedilatildeo de uma face
Esta abordagem pode ser considerada uma abordagem Subtrativa pois eacute atraveacutes da reduccedilatildeo de um
objeto base que eacute obtido o objeto desejado
10
Estado da Arte e Trabalhos Relacionados
O polygon modelling caracteriza-se pelo controlo direto sobre a colocaccedilatildeo de cada veacutertice de
uma superfiacutecie permitindo dessa forma um controlo fino e preciso sobre o resultado a produzir
2212 NURBS
NURBS ou Non-uniform rational B-spline eacute uma generalizaccedilatildeo de B-Splines e Curvas de Beacute-
zier [KR79 Cab92] um modelo matemaacutetico usado para representar curvas e superfiacutecies com
grande precisatildeo e flexibilidade (Figura 26) Eacute principalmente utilizado em aacutereas da computaccedilatildeo
graacutefica (CAD CAM CAE) onde a precisatildeo dos modelos obtidos eacute muito importante Inicialmente
estudada por Matemaacuteticos como I J Schoenberg [Cob84] foi aplicada em sistemas CAD para a
modelaccedilatildeo na induacutestria Automoacutevel [Beacute83 Beacutez81 Bez68]
Figura 26 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modeloNURBS
2213 Digital Sculpting
Digital Sculpting eacute a adaptaccedilatildeo de teacutecnicas utilizadas para moldar materiais como o barro agrave
modelaccedilatildeo 3D Estas ferramentas permitem ao modelador empurrar puxar polir vincare
adicionar ou remover volume Perry et al [PF01] introduziram Kizamu um dos primeiros passos
na aacuterea do Digital Sculpting Os modelos satildeo representados no que eacute chamado de Adaptively Sam-
pled Distance Fields (ADF) [FPRJ00] que permite representar dados volumeacutetricos que tornam o
processo de Digital Sculpting possiacutevel
222 Ferramentas de Modelaccedilatildeo 3D
2221 Blender
O Blender [ble15a] eacute uma ferramenta profissional de modelaccedilatildeo de coacutedigo aberto desen-
volvida pela Blender Foundation Suporta uma grande variedade de primitivas geomeacutetricas in-
11
Estado da Arte e Trabalhos Relacionados
Figura 27 Interface da ferramenta Blender
cluiacutendo Polygon Meshes curvas de Bezier superfiacutecies NURBS Metaballs e Digital Sculpting
Esta destaca-se por ser gratuita e pela facilidade de criar extensotildees [ble15b] usando a API Python
existente [ble15c] que permite adicionar novas funcionalidades agrave ferramenta
2222 Autodesk Maya
Figura 28 Interface da ferramenta Autodesk Maya
O Autodesk Maya [Aut15b] eacute uma ferramenta de produccedilatildeo de conteuacutedo 3D utilizada nas induacutes-
trias do cinema televisatildeo videojogos e arquitetura Eacute de coacutedigo fechado e a respetiva utilizaccedilatildeo
requer que o utilizador possua uma licenccedila Tal como o Blender o Maya daacute aos modeladores
ferramentas para estes criarem objetos de uma forma interativa 28 Apesar de ser uma ferramenta
versaacutetil e capaz de satisfazer as necessidades de todas induacutestrias acima referidas o Autodesk
Maya tende a ser mais utilizado pela induacutestria do Cinema devido agrave vasta customizaccedilatildeo possiacutevel de
aspetos importantes para esta induacutestria como Animaccedilatildeo e VFX [Aut15c]
12
Estado da Arte e Trabalhos Relacionados
2223 Autodesk 3D Studio Max
O 3D Studio Max [Aut15a] eacute outra ferramenta da Autodesk em muitos aspetos semelhante
ao Maya No entanto o 3DS Max estaacute apenas disponiacutevel para maacutequinas de sistema operativo
Windows e sempre foi mais utilizado pela induacutestria dos videojogos para a criaccedilatildeo de modelos 3D
Tal como o Autodesk Maya este dispotildee de poderosos motores de renderizaccedilatildeo Ray Tracing
2224 Zbrush
O Zbrush [Pix15] eacute uma ferramenta de modelaccedilatildeo 3D baseada nos conceitos de Digital Mo-
delling Daacute ao artista muacuteltiplas Brushes que permitem manipular o objeto a ser definido com
paradigmas transportados de outras aacutereas artiacutesticas Pode tornar mais acessiacutevel para um utilizador
pouco experiente com alguns paradigmas da Computaccedilatildeo Graacutefica a modelaccedilatildeo de objetos com
consideraacutevel detalhe e liberdade artiacutestica [Spe11]
23 Sumaacuterio
Apoacutes o levantamento do estado da arte eacute possiacutevel constatar que as ferramentas de modelaccedilatildeo
manual satildeo a escolha de eleiccedilatildeo para contextos em que o modelador deseja o maior niacutevel controlo
possiacutevel sobre o objeto a ser produzido No entanto considerando ferramentas de modelaccedilatildeo
procedimental tem existido um esforccedilo por parte desta comunidade para tornar a correspondente
experiecircncia de utilizaccedilatildeo mais acessiacutevel a utilizadores pouco familiarizados com o funcionamento
do mesmo Por enquanto a utilizaccedilatildeo deste tipo de ferramentas ainda requer que o conteuacutedo
seja criado em ferramentas dedicadas completamente separadas das ferramentas tradicionais (ie
Maya Blender) essenciais para o trabalho artiacutestico levando a quebras no fluxo de trabalho
13
Estado da Arte e Trabalhos Relacionados
14
Capiacutetulo 3
Metodologia
Com os desenvolvimentos atuais na aacuterea de modelaccedilatildeo procedimental apresentados no capiacute-
tulo 2 eacute possiacutevel verificar que as soluccedilotildees de MP existentes permitem produzir variados tipos de
conteuacutedo tais como terrenos vegetaccedilatildeo edifiacutecios estradas e cidades por outro lado as respeti-
vas integraccedilotildees em ambientes de modelaccedilatildeo manual satildeo algo limitadas ou apenas disponiacuteveis em
ferramentas externas especializadas num uacutenico tipo de conteuacutedo
Da mesma forma como verificado em 21 foram efetuadas vaacuterias tentativas pela comunidade
envolvida em geraccedilatildeo procedimental no sentido a melhorar a interaccedilatildeo com ferramentas dedica-
das agrave geraccedilatildeo procedimental no entanto existe ainda uma grande margem para avanccedilo de uma
integraccedilatildeo geneacuterica destes processos numa ferramenta de modelaccedilatildeo manual Devido agrave falta de
soluccedilotildees que se integrem de forma transparente e acessiacutevel em ambientes de modelaccedilatildeo manual
pretende-se apresentar uma soluccedilatildeo com o objetivo de interligar as duas abordagens neste capiacute-
tulo Inicialmente seraacute apresentada em pormenor a arquitetura da soluccedilatildeo de seguida o protocolo
de comunicaccedilatildeo entre os dois ambientes de modelaccedilatildeo e finalmente seraacute proposto um meacutetodo de
trabalho no qual seraacute descrita a interaccedilatildeo ideal entre o modelador e a soluccedilatildeo proposta
31 Meacutetodo de Trabalho
Numa interaccedilatildeo ideal o modelador teria controlo absoluto sobre os meacutetodos de geraccedilatildeo proce-
dimental e seria possiacutevel modelar procedimentalmente sobre alteraccedilotildees manuais realizadas sobre
o objeto No entanto nem sempre eacute desejado esse niacutevel de controlo e interligaccedilatildeo entre as aborda-
gens Imaginando a modelaccedilatildeo de um edifiacutecio este eacute construiacutedo segundo meacutetodos procedimentais
e recebe como entrada um poliacutegono que delimita a fundaccedilatildeo assim como paracircmetros numeacutericos e
booleanos que definem a geometria resultante Depois de modelado procedimentalmente o objeto
eacute adicionado ao ambiente de modelaccedilatildeo manual onde o modelador pode realizar alteraccedilotildees em
detalhes na geometria ou mesmo alteraccedilotildees profundas na geometria do mesmo
15
Metodologia
Considerando uma situaccedilatildeo em que o modelador realizou alteraccedilotildees profundas na geometria
produzida como por exemplo a reparticcedilatildeo de uma das fachadas do edifiacutecio em trecircs fachadas
Assim que realizadas estas alteraccedilotildees o utilizador pretende alterar a altura do edifiacutecio alterando o
paracircmetro correspondente e requisitando uma atualizaccedilatildeo Para ser possiacutevel manter as alteraccedilotildees
realizadas manualmente e em simultacircneo respeitar as regras definidas pela geraccedilatildeo procedimen-
tal seria necessaacuterio converter estas alteraccedilotildees em regras possiacuteveis de definir no escopo do ambiente
de geraccedilatildeo procedimental
De qualquer das formas as alteraccedilotildees realizadas no ponto anterior podem simplesmente natildeo
fazer sentido apoacutes a aplicaccedilatildeo sobre o objeto que foi reproduzido seguindo as regras definias
por um procedimento Devido a esta limitaccedilatildeo eacute assumido que assim que o utilizador requisita
uma nova execuccedilatildeo de um procedimento o qual natildeo tem problemas em descartar as alteraccedilotildees
executadas manualmente sobre o objeto em questatildeo
Tendo em consideraccedilatildeo esta limitaccedilatildeo eacute possiacutevel estruturar um fluxo de trabalho que melhor
explore as vantagens e limitaccedilotildees de ambas as abordagens de geraccedilatildeo de conteuacutedo tridimensional
O utilizador tem uma panoacuteplia de conteuacutedos procedimentais ao seu dispor que podem ser definidas
via paracircmetros numeacutericos e geomeacutetricos O conteuacutedo eacute adicionado ao ambiente de modelaccedilatildeo ma-
nual e os paracircmetros podem ainda ser editados alterados ao custo de que as modificaccedilotildees manuais
realizadas sobre o objeto sejam descartadas
32 Metodologias de Interaccedilatildeo com o Utilizador
Em relaccedilatildeo agrave interaccedilatildeo com o utilizador foram estudadas trecircs abordagens para a interaccedilatildeo com
meacutetodos de geraccedilatildeo procedimental em ambiente de modelaccedilatildeo manual
321 Modificadores
O conceito de modificadores eacute jaacute utilizado em ambientes de modelaccedilatildeo manual eg no Blen-
der [Bap14 Ble15e] onde satildeo utilizados para realizar operaccedilotildees sobre objetos na cena sem destruir
a geometria subjacente apenas modificam a forma como os objetos satildeo percecionados pelo motor
de renderizaccedilatildeo Esta abordagem eacute uacutetil em situaccedilotildees onde o procedimento a ser executado en-
volve modificaccedilotildees sobre uma geometria base como tal permitindo realizar muacuteltiplas alteraccedilotildees
sobre um objeto podendo estas ser facilmente canceladas recuperando o objeto original No en-
tanto nem todos os recursos de geraccedilatildeo procedimental incidem sobre modificaccedilatildeo de geometria
Os meios de geraccedilatildeo procedimental em muitas situaccedilotildees produzem objetos e cenaacuterios uacutenicos e
independentes de qualquer geometria de entrada
322 Grafos
A abordagem de interaccedilatildeo via grafos eacute atualmente utilizada num ambiente de modelaccedilatildeo ma-
nual para a ediccedilatildeo de materiais [Ble15d] Tambeacutem chamada de Flow-Based Programming esta
16
Metodologia
abordagem permite apresentar ao utilizador os procedimentos como uma caixa negra com pos-
siacuteveis entradas e saiacutedas representadas como ligaccedilotildees de fluxo A correspondente utilizaccedilatildeo na
interaccedilatildeo com geraccedilatildeo procedimental pode permitir o encadeamento de muacuteltiplos procedimentos
No entanto a abordagem pode ser mais trabalhosa para o utilizador introduzindo um niacutevel de
interaccedilatildeo adicional para cada objeto introduzido na cena
323 Funccedilotildees
Esta abordagem disponibiliza ao utilizador cada recurso de geraccedilatildeo procedimental como uma
funccedilatildeo disponiacutevel a qualquer momento na interface da ferramenta de modelaccedilatildeo manual Aquando
da respetiva invocaccedilatildeo satildeo requisitados aos utilizadores os paracircmetros necessaacuterios agrave execuccedilatildeo
A abordagem em causa eacute potencialmente a mais faacutecil de adotar por parte dos utilizadores de
ferramentas de modelaccedilatildeo manual Devido agrave simplicidade na interaccedilatildeo assim como a reduzida
necessidade de tempo e recursos para a implementaccedilatildeo esta foi a abordagem de interaccedilatildeo utilizada
na soluccedilatildeo desenvolvida
33 Arquitetura da Soluccedilatildeo
Para abordar este problema eacute proposta a utilizaccedilatildeo de duas aplicaccedilotildees jaacute presentes no mer-
cado Uma aplicaccedilatildeo dedicada agrave modelaccedilatildeo procedimental e uma aplicaccedilatildeo de modelaccedilatildeo manual
Foi escolhida esta abordagem na medida em que eacute possiacutevel utilizar duas aplicaccedilotildees jaacute existentes
sendo possiacutevel dessa forma aproveitar os pontos fortes de cada soluccedilatildeo com o intuito de otimi-
zar o processo de criaccedilatildeo de novos cenaacuterios e conteuacutedo tridimensional Esta abordagem pode ser
representada como uma soluccedilatildeo estruturada numa arquitetura Cliente-Servidor em que a aplica-
ccedilatildeo de geraccedilatildeo procedimental eacute capaz de fornecer serviccedilos de geraccedilatildeo de conteuacutedo a um ou mais
clientes de modelaccedilatildeo Esta abordagem interliga as duas aplicaccedilotildees atraveacutes de um protocolo de
comunicaccedilatildeo Este permite ao utilizador da ferramenta de modelaccedilatildeo manual requisitar a produ-
ccedilatildeo de conteuacutedo seguindo os valores impostos pelo utilizador nos paracircmetros do procedimento
requisitado O protocolo eacute descrito em maior detalhe na secccedilatildeo 34
331 Vantagens
Faacutecil integraccedilatildeo em diferentes plataformas Devido agrave arquitetura ser baseada na comunicaccedilatildeo
entre duas aplicaccedilotildees por um protocolo de comunicaccedilatildeo geneacuterico eacute com alguma facili-
dade que se realiza a interligaccedilatildeo com diferentes soluccedilotildees de geraccedilatildeo procedimental ou de
modelaccedilatildeo manual Sendo assim possiacutevel a expansatildeo para novos ambientes de modelaccedilatildeo
manual ou mesmo introduzir novas soluccedilotildees de geraccedilatildeo procedimental
Escalabilidade A arquitetura proposta poderaacute permitir que esta seja implementada de modo a que
um servidor central de geraccedilatildeo procedimental sirva por exemplo num ambiente empresa-
rial como um repositoacuterio de recursos de geraccedilatildeo de conteuacutedos desta forma permitindo
17
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
CONTEUacuteDO
6 Conclusotildees e Trabalho Futuro 3961 Trabalho Futuro 39
Referecircncias 41
A Mensagens JSON 47A1 JSON de Pedido de Abertura do Projeto Urban 47A2 JSON de Informaccedilatildeo do Projeto Urban 47A3 Exemplo de Pedido para Gerar um Grafo 49A4 Exemplo de Resposta de Erro do Servidor 50
B Principais Grafos do Projeto Urban 51
C Cenaacuterios Resultantes dos Testes com Utilizadores 55
x
Lista de Figuras
11 Captura de ecratilde do viacutedeo jogo Crysis 3 da Electronic Arts 2
21 Procedural sketching of virtual worlds por Smelik et al [STdKB10] 622 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et
al [IOI06b IOI06a] 723 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch 824 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13] 925 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14] 1026 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modelo
NURBS 1127 Interface da ferramenta Blender 1228 Interface da ferramenta Autodesk Maya 12
31 Diagrama do sistema proposto 18
41 Editor Construct em execuccedilatildeo 2242 Grafo exemplo e respetiva geometria produzida 2343 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct 2444 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct
a abrir 2445 Barra de ferramentas depois de aberto um projeto 2646 JSON enviado ao servidor para a execuccedilatildeo de um grafo 2647 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base 2748 Edifiacutecio depois de adicionado agrave cena 2749 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores 28410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular 28411 Custom Properties de um objeto produzido por um grafo Cube 29
51 Cenaacuterio requisitado aos utilizadores 3152 Exemplos de resultados possiacuteveis do grafo Building 3253 Exemplo de resultado do grafo Window 3354 Exemplo de resultado do grafo Door 3355 Exemplo de resultado do grafo CityStreets 3456 Cursor 3D do Blender 36
B1 Grafo Building como visto no editor Construct 51B2 Grafo CityStreets como visto no editor Construct 52B3 Grafo Window como visto no editor Construct 52B4 Grafo Door como visto no editor Construct 53
xi
LISTA DE FIGURAS
B5 Grafo DetailedRoof como visto no editor Construct 53
C1 Cenaacuterio criado pelo utilizador 3 55C2 Cenaacuterio criado pelo utilizador 4 56
xii
Lista de Tabelas
41 Estatiacutesticas dos principais foacuteruns 2242 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender 25
51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e otempo utilizado para construir o cenaacuterio utilizando o add-on desenvolvido 37
52 Resultados da avaliaccedilatildeo de usabilidade do sistema 37
xiii
LISTA DE TABELAS
xiv
Abreviaturas e Siacutembolos
API Application Programming InterfaceCAD Computer-Aided DesignCASE Computer-Aided Software EngineeringCGI Computer-Generated ImageJSON JavaScript Object NotationMP Modelaccedilatildeo ProcedimentalGP Geraccedilatildeo ProcedimentalMM Modelaccedilatildeo ManualSUS System Usability ScaleTCP Transmission Control Protocol
xv
Capiacutetulo 1
Introduccedilatildeo
A criaccedilatildeo de ambientes virtuais eacute um toacutepico muito relevante em computaccedilatildeo graacutefica e reali-
dade virtual tendo aplicaccedilotildees na induacutestria do entretenimento para a produccedilatildeo filmes e videojogos
entre outros Na induacutestria do cinema estes ambientes virtuais satildeo utilizados para criar imagens
impossiacuteveis de reproduzir atraveacutes de meios praacuteticos Na induacutestria dos videojogos cada vez mais
encontramos jogos em ambientes de maior dimensatildeo e com um elevado niacutevel de detalhe (Figura
11)
Em modelaccedilatildeo a abordagem tradicional eacute a de Modelaccedilatildeo Manual que permite ao artista
controlo completo e fino do objeto a ser criado No que toca agrave criaccedilatildeo de cenaacuterios de elevadas
dimensotildees como montanhas cidades estradas e vegetaccedilatildeo a abordagem tradicional torna-se cada
vez menos viaacutevel A introduccedilatildeo de meacutetodos procedimentais na geraccedilatildeo destes conteuacutedos permite
produzir resultados de alta qualidade com alguma facilidade produzindo cenaacuterios numa fraccedilatildeo do
tempo e do custo correspondentes agrave respetiva produccedilatildeo por meio de modelaccedilatildeo manual
Apesar do grande impacto positivo que esta abordagem trouxe para a induacutestria de um ponto
de vista artiacutestico nem sempre o resultado eacute o mais desejado desta forma podendo necessitar
da introduccedilatildeo de pormenores e alteraccedilotildees finas agrave respetiva geometria para produzir um resultado
uacutenico e mais proacuteximo da visatildeo artiacutestica do criador Para tal tecircm sido desenvolvidas teacutecnicas
para uma interaccedilatildeo mais intuitiva com a modelaccedilatildeo procedimental tentado dar ao modelador um
melhor controlo sobre os meacutetodos automatizados que lhes estatildeo subjacentes natildeo possuindo ainda
o niacutevel de controlo fino que uma ferramenta de modelaccedilatildeo manual pode oferecer
1
Introduccedilatildeo
Figura 11 Captura de ecratilde do viacutedeo jogo Crysis 3 da Electronic Arts
11 Contexto
Esta dissertaccedilatildeo insere-se na aacuterea da computaccedilatildeo graacutefica mais especificamente na aacuterea da mo-
delaccedilatildeo tridimensional geraccedilatildeo procedimental de modelos 3D e interaccedilatildeo com os mesmos Estas
aacutereas intersectam-se em rumo a uma melhor interaccedilatildeo com recursos de geraccedilatildeo procedimental
num ambiente de modelaccedilatildeo manual
Esta dissertaccedilatildeo foi realizada na Faculdade de Engenharia da Universidade do Porto no Labo-
ratoacuterio de IampD de Computaccedilatildeo Graacutefica Interaccedilatildeo e Jogos
12 Motivaccedilatildeo e Problema
Os avanccedilos no desenvolvimento de hardware e software resultam numa necessidade de con-
teuacutedo tridimensional maior e mais detalhado criando uma maior carga nas equipas que os pro-
duzem Como mencionado previamente a utilizaccedilatildeo de modelaccedilatildeo procedimental para a criaccedilatildeo
raacutepida de ambientes tridimensionais eacute altamente apelativa para a induacutestria permitindo poupar
tempo e dinheiro comparativamente a uma abordagem manual
No entanto esta abordagem dificulta ao modelador a introduccedilatildeo de pormenores pois os meacute-
todos procedimentais satildeo definidos tipicamente por um conjunto de regras e paracircmetros de uma
forma natildeo intuitiva ou de controlo limitado A simples modificaccedilatildeo de um paracircmetro pode criar
uma reaccedilatildeo em cadeia de modificaccedilotildees que alteram por completo o modelo gerado Eacute assim ape-
lativo encontrar um meacutetodo que melhor aproveite as vantagens das duas abordagens permitindo
aos modeladores uma produccedilatildeo de conteuacutedo tridimensional mais raacutepida e controlada
2
Introduccedilatildeo
13 Objetivos
O objetivo principal deste trabalho eacute desenvolver uma soluccedilatildeo que melhor aproveite as vanta-
gens das duas principais abordagens agrave modelaccedilatildeo 3D para tal eacute possiacutevel identificar os seguintes
objetivos especiacuteficos
bull Investigar o estado da arte da aacuterea da modelaccedilatildeo procedimental e modelaccedilatildeo manual em
particular os avanccedilos realizados na interaccedilatildeo com os meacutetodos utilizados em modelaccedilatildeo pro-
cedimental
bull Estudar as metodologias possiacuteveis para abordar o problema
bull Desenvolver uma soluccedilatildeo utilizando uma abordagem possiacutevel com os recursos disponiacuteveis
bull Testar a soluccedilatildeo com utilizadores proficientes em modelaccedilatildeo de conteuacutedo 3D
14 Estrutura do documento
Esta dissertaccedilatildeo encontra-se dividida em 6 capiacutetulos anexos e referecircncias O capiacutetulo pre-
sente consiste numa descriccedilatildeo do problema da motivaccedilatildeo e dos objetivos propostos para a cor-
respondente realizaccedilatildeo No capiacutetulo 2 eacute realizado um levantamento do estado da arte nas aacutereas
da modelaccedilatildeo procedimental e modelaccedilatildeo manual em especial os avanccedilos realizados na interaccedilatildeo
com os meacutetodos utilizados em modelaccedilatildeo procedimental No capiacutetulo 3 satildeo discutidas as meto-
dologias estudadas para a melhor interaccedilatildeo entre as duas abordagens agrave modelaccedilatildeo sendo tambeacutem
apresentada com maior detalhe a metodologia a ser utilizada
No capiacutetulo 4 satildeo descritos alguns detalhes de implementaccedilatildeo da soluccedilatildeo desenvolvida base-
ada na metodologia discutida no capiacutetulo 3
No capiacutetulo 5 eacute apresentada a metodologia de teste utilizada para avaliar a soluccedilatildeo desenvol-
vida sendo tambeacutem apresentados os resultados obtidos
No capiacutetulo 6 o final da dissertaccedilatildeo satildeo resumidas algumas constataccedilotildees e conclusotildees rea-
lizadas sobre esta dissertaccedilatildeo Eacute efetuada tambeacutem uma listagem de alguns pontos para potencial
trabalho futuro
3
Introduccedilatildeo
4
Capiacutetulo 2
Estado da Arte e TrabalhosRelacionados
Neste capiacutetulo seraacute realizada uma revisatildeo bibliograacutefica que visa apresentar todos os avanccedilos
realizados nas aacutereas da interaccedilatildeo com os meacutetodos de geraccedilatildeo procedimental Seratildeo apresentados
os tipos de conteuacutedo passiacuteveis de serem produzidos por meio destes meacutetodos bem como as teacutec-
nicas utilizadas para a respetiva interaccedilatildeo e geraccedilatildeo Iratildeo tambeacutem ser apresentadas as abordagens
existentes para uma modelaccedilatildeo manual e as ferramentas existentes no mercado
21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundosvirtuais
O paradigma de interaccedilatildeo com meacutetodos de geraccedilatildeo procedimental eacute tradicionalmente funci-
onal Cada procedimento pode ser considerado uma caixa negra de operaccedilotildees que dependendo
de certos valores de entrada produz um ou mais resultados A interaccedilatildeo com estes nem sempre
eacute a mais intuitiva pois para atingir o resultado desejado envolve em repetidas tentativa e erro por
parte do utilizador No entanto em anos recentes tem existido um avanccedilo consideraacutevel nesta aacuterea
tentado conceder ao utilizador maior controlo sobre os meacutetodos de geraccedilatildeo procedimental com
abordagens como Sketch-based editores visuais e Modelaccedilatildeo Procedimental Invertida
211 Teacutecnicas Sketch-based
Esta abordagem tenta aproximar o tipo de interaccedilatildeo com que os principais utilizadores de
meacutetodos de Modelaccedilatildeo Procedimental estatildeo familiarizados Noccedilotildees como Brushes e Sketches satildeo
alguns dos conceitos mais populares entre designers profissionais
5
Estado da Arte e Trabalhos Relacionados
2111 Terrenos
De Carpentier et al [dCB09] propuseram um meacutetodo de ediccedilatildeo de terrenos no qual eacute dada ao
utilizador a possibilidade de alterar o heightfield atraveacutes de procedural brushes tentando combinar
a interaccedilatildeo manual localizada com a modificaccedilatildeo da parametrizaccedilatildeo por completo de heightfields
Esta abordagem eacute capaz de produzir alteraccedilotildees a tempo real graccedilas agrave respetiva implementaccedilatildeo
com shaders
Smelik et al [STdKB10] seguindo a respetiva proposta de modelaccedilatildeo de mundos virtuais
[STdKB08] propotildeem a utilizaccedilatildeo da abordagem Procedural sketching e demonstram-na num
protoacutetipo intitulado de SketchaWorld Esta abordagem eacute dividida em dois principais modos de
interaccedilatildeo (Figura 21) Landscape Mode e Feature Mode
Figura 21 Procedural sketching of virtual worlds por Smelik et al [STdKB10]
No primeiro o utilizador interage com uma vista top-down do terreno divido em grelha e eacute
capaz de definir a informaccedilatildeo geoloacutegica de cada ceacutelula atraveacutes do uso de Brushes Em Feature
Mode o utilizador manipula pontos de controlo correspondendo a vetores ou poliacutegonos que deli-
mitam a localizaccedilatildeo de cidades rios e vegetaccedilatildeo A ferramenta fornece feedback da construccedilatildeo do
terreno a um ritmo consideraacutevel para uma interaccedilatildeo fluida Esta tambeacutem dispotildee de funcionalida-
des como undo e redo para uma melhorar a interaccedilatildeo entre o utilizador e a ferramenta permitindo
assim a introduccedilatildeo de alteraccedilotildees e caso estas natildeo sejam desejadas pelo utilizador estas podem
ser desfeitas rapidamente Gain et al [GMSe09] propotildeem uma soluccedilatildeo que permite ao utilizador
esboccedilar as silhuetas e limites de corpos montanhosos a serem gerados
6
Estado da Arte e Trabalhos Relacionados
2112 Estradas
Num esforccedilo de melhorar a interaccedilatildeo com path layouts Singh et al [SM08] desenvolveram a
ferramenta Drive que permite a conceptualizaccedilatildeo de redes rodoviaacuterias tridimensionais por meio
de esboccedilos que satildeo posteriormente aproximados a clotoacuteides (Curvas em que o raio varia line-
armente) Com esta abordagem eacute possiacutevel produzir itineraacuterios em que as transiccedilotildees entre raios
de curvatura satildeo lineares tornando-os assim adequados para a conduccedilatildeo A ferramenta tambeacutem
introduz Terrain sensitive sketching que por meios automaacuteticos coloca sinalizaccedilatildeo no percurso e
vegetaccedilatildeo nas redondezas
2113 Vegetaccedilatildeo
Figura 22 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et al[IOI06b IOI06a]
O trabalho de Ijiri et al [IOI06b IOI06a] apresenta uma teacutecnica que atraveacutes de traccedilados defi-
nidos pelo utilizador (Figura 22) permite a manipulaccedilatildeo da direccedilatildeo de crescimento de vegetaccedilatildeo
produzida por L-Systems uma abordagem jaacute muito estudada para a criaccedilatildeo de vegetaccedilatildeo pro-
posta por Lindenmayer [Lin68] como um tipo de gramaacutetica formal capaz de representar padrotildees
e geometria fractal existente na vegetaccedilatildeo Em 1988 foi proposto por Prusinkiewicz [PLH88] a
utilizaccedilatildeo de L-systems para a modelaccedilatildeo de vegetaccedilatildeo Ao longo das ultimas deacutecadas tecircm sido
realizados avanccedilos consideraacuteveis na produccedilatildeo de vegetaccedilatildeo realiacutestica [WP95] e a respetiva inte-
raccedilatildeo com o seu meio ambiente [MP96 Pru00] tentado assim produzir vegetaccedilatildeo que melhor
simule o comportamento fiacutesico e bioloacutegico de vegetaccedilatildeo real
Mais recentemente o trabalho de Palubicky et al [PHL+09] foi expandido e transportado
para uma aplicaccedilatildeo para dispositivos iPad em que o modelador tem um controlo fino sobre o
crescimento de uma aacutervore Utilizando o conceito de tree self-organization Longay et al criaram
7
Estado da Arte e Trabalhos Relacionados
a ferramenta TreeSketch 23 que estimula a competiccedilatildeo entre os ramos de uma aacutervore por espaccedilo
e luz dentro dos paracircmetros e inputs visuais dados pelo utilizador [LRBP12]
Figura 23 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch
212 Editores Visuais
Numa tentativa de melhorar a interaccedilatildeo com modelaccedilatildeo procedimental baseada em gramaacuteticas
[WWSR03 MWH+06] Lipp et al propuseram uma abordagem que permite a manipulaccedilatildeo direta
do resultado produzido por uma gramaacutetica O utilizador pode manipular diretamente no objeto as
respetivas dimensotildees e configuraccedilotildees [LWW08]
Mais recentemente Krecklau et al [KK12] introduziram uma abordagem que permite a ge-
raccedilatildeo de cenas a partir de primitivas de alto niacutevel e a correspondente manipulaccedilatildeo por interaccedilatildeo
direta na cena consequentemente permitindo a utilizadores menos experientes a utilizaccedilatildeo de
gramaacuteticas procedimentais complexas sem a necessidade de interaccedilatildeo textual com as mesmas
2121 Visual Node Based
Editores Visual Node Based satildeo utilizados em muitas aplicaccedilotildees comercias como meio de
dar ao utilizador feedback visual do fluxo de informaccedilatildeo Encontra-se em editores de shaders
[Hol15 Aut15b] editores de animaccedilotildees [Tec15] e em editores de texturas [Cod15] A vasta uti-
lizaccedilatildeo da teacutecnica na aacuterea de produccedilatildeo de conteuacutedo 3D por utilizadores com pouca experiecircncia
de programaccedilatildeo levou a que investigadores a utilizassem para a especificaccedilatildeo de gramaacuteticas de
produccedilatildeo
Nesse contexto Patow [Pat12] desenvolveu uma soluccedilatildeo para a construccedilatildeo e manipulaccedilatildeo de
gramaacuteticas por meio de um editor visual onde noacutes que representam operaccedilotildees geomeacutetricas dos
correspondentes antecessores transmitem o resultado aos noacutes sucessores Na mesma publica-
ccedilatildeo Patow realccedila a importacircncia que esta abordagem acarreta para a modelaccedilatildeo procedimental de
edifiacutecios e admite que existe ainda muito potencial por explorar
8
Estado da Arte e Trabalhos Relacionados
Mais recentemente o trabalho de Silva et al [SMBC13] apresenta uma metodologia de edi-
ccedilatildeo em que grafos podem ser encapsulados em noacutes designados Component capazes de representar
construccedilotildees complexas Os noacutes podem ser facilmente introduzidos noutros grafos e editados por
meio de filtros de fluxo colocados nas arestas ou por restriccedilotildees que auxiliam a especificar a utili-
zaccedilatildeo dos noacutes (Figura 24)
Figura 24 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13]
213 Modelaccedilatildeo Procedimental Invertida
Inverse PM eacute uma teacutecnica em que um dado modelo de entrada eacute aproximado a uma represen-
taccedilatildeo procedimental
Aliaga et al [ARB07] apresenta a reconstruccedilatildeo de edifiacutecios por meio de fotografias Nesta
abordagem o utilizador define os limites das fachadas do edifiacutecio criando uma representaccedilatildeo
minimalista De seguida eacute automaticamente aproximada uma gramaacutetica que melhor representa
o edifiacutecio em questatildeo Com os trabalhos de Šrsquotava et al [ŠBM+10] na parametrizaccedilatildeo de arte
vetorial 2D e de Mitra et al [MGP06] em encontrar simetrias em objetos tridimensionais Bokeloh
et al [BWS10] aplica estes conceitos para a descoberta de simetrias nos objetos e a consequente
aproximaccedilatildeo de gramaacuteticas que definam o objeto em questatildeo
As abordagens atuais focam-se em Modelaccedilatildeo invertida de ambientes urbanos no entanto
Vanegas et al [VGDA+12] demonstram uma metodologia de aproximaccedilatildeo de gramaacuteticas capazes
de representar para aleacutem de edifiacutecios sistemas complexos de vegetaccedilatildeo aproximados a um objeto
jaacute existente
9
Estado da Arte e Trabalhos Relacionados
22 Modelaccedilatildeo 3D Manual
Para a produccedilatildeo de objetos tridimensionais os modeladores utilizam ferramentas dedicadas
que lhes datildeo um controlo total sobre o modelo a ser construiacutedo Estes variam em metaacuteforas de
interface e em puacuteblico alvo Nesta secccedilatildeo vatildeo ser abordadas as teacutecnicas de modelaccedilatildeo atualmente
utilizadas por estas ferramentas e seratildeo listadas as ferramentas existentes no mercado e as respeti-
vas funcionalidades principais
221 Teacutecnicas de Modelaccedilatildeo Manual
2211 Polygon Modelling
Polygon Modelling eacute uma abordagem para a representaccedilatildeo de superfiacutecies tridimensionais utili-
zando poliacutegonos estes satildeo representados por veacutertices e arestas e em grupos formam uma Polygon
Mesh que pode ser armazenada de muacuteltiplas formas [TM06 Bau72 Smi06] Eacute possiacutevel criar ma-
lhas veacutertice a veacutertice manualmente No entanto eacute comum a respetiva manipulaccedilatildeo em software
graacutefico concedendo aos modeladores ferramentas interativas como Blender Autodesk Maya e 3D
Studio Max
Figura 25 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14]
Uma das abordagens mais comuns eacute denominada Box Modelling na qual uma forma geomeacute-
trica considerada uma primitiva (ie cubo esfera cilindro) eacute esculpida iterativamente por pas-
sos de subdivisatildeo do objeto e subsequente manipulaccedilatildeo da geometria ateacute se obter o objeto final
[Jon02 sub14] A figura 25 demonstra da teacutecnica Box Modelling para a modelaccedilatildeo de uma face
Esta abordagem pode ser considerada uma abordagem Subtrativa pois eacute atraveacutes da reduccedilatildeo de um
objeto base que eacute obtido o objeto desejado
10
Estado da Arte e Trabalhos Relacionados
O polygon modelling caracteriza-se pelo controlo direto sobre a colocaccedilatildeo de cada veacutertice de
uma superfiacutecie permitindo dessa forma um controlo fino e preciso sobre o resultado a produzir
2212 NURBS
NURBS ou Non-uniform rational B-spline eacute uma generalizaccedilatildeo de B-Splines e Curvas de Beacute-
zier [KR79 Cab92] um modelo matemaacutetico usado para representar curvas e superfiacutecies com
grande precisatildeo e flexibilidade (Figura 26) Eacute principalmente utilizado em aacutereas da computaccedilatildeo
graacutefica (CAD CAM CAE) onde a precisatildeo dos modelos obtidos eacute muito importante Inicialmente
estudada por Matemaacuteticos como I J Schoenberg [Cob84] foi aplicada em sistemas CAD para a
modelaccedilatildeo na induacutestria Automoacutevel [Beacute83 Beacutez81 Bez68]
Figura 26 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modeloNURBS
2213 Digital Sculpting
Digital Sculpting eacute a adaptaccedilatildeo de teacutecnicas utilizadas para moldar materiais como o barro agrave
modelaccedilatildeo 3D Estas ferramentas permitem ao modelador empurrar puxar polir vincare
adicionar ou remover volume Perry et al [PF01] introduziram Kizamu um dos primeiros passos
na aacuterea do Digital Sculpting Os modelos satildeo representados no que eacute chamado de Adaptively Sam-
pled Distance Fields (ADF) [FPRJ00] que permite representar dados volumeacutetricos que tornam o
processo de Digital Sculpting possiacutevel
222 Ferramentas de Modelaccedilatildeo 3D
2221 Blender
O Blender [ble15a] eacute uma ferramenta profissional de modelaccedilatildeo de coacutedigo aberto desen-
volvida pela Blender Foundation Suporta uma grande variedade de primitivas geomeacutetricas in-
11
Estado da Arte e Trabalhos Relacionados
Figura 27 Interface da ferramenta Blender
cluiacutendo Polygon Meshes curvas de Bezier superfiacutecies NURBS Metaballs e Digital Sculpting
Esta destaca-se por ser gratuita e pela facilidade de criar extensotildees [ble15b] usando a API Python
existente [ble15c] que permite adicionar novas funcionalidades agrave ferramenta
2222 Autodesk Maya
Figura 28 Interface da ferramenta Autodesk Maya
O Autodesk Maya [Aut15b] eacute uma ferramenta de produccedilatildeo de conteuacutedo 3D utilizada nas induacutes-
trias do cinema televisatildeo videojogos e arquitetura Eacute de coacutedigo fechado e a respetiva utilizaccedilatildeo
requer que o utilizador possua uma licenccedila Tal como o Blender o Maya daacute aos modeladores
ferramentas para estes criarem objetos de uma forma interativa 28 Apesar de ser uma ferramenta
versaacutetil e capaz de satisfazer as necessidades de todas induacutestrias acima referidas o Autodesk
Maya tende a ser mais utilizado pela induacutestria do Cinema devido agrave vasta customizaccedilatildeo possiacutevel de
aspetos importantes para esta induacutestria como Animaccedilatildeo e VFX [Aut15c]
12
Estado da Arte e Trabalhos Relacionados
2223 Autodesk 3D Studio Max
O 3D Studio Max [Aut15a] eacute outra ferramenta da Autodesk em muitos aspetos semelhante
ao Maya No entanto o 3DS Max estaacute apenas disponiacutevel para maacutequinas de sistema operativo
Windows e sempre foi mais utilizado pela induacutestria dos videojogos para a criaccedilatildeo de modelos 3D
Tal como o Autodesk Maya este dispotildee de poderosos motores de renderizaccedilatildeo Ray Tracing
2224 Zbrush
O Zbrush [Pix15] eacute uma ferramenta de modelaccedilatildeo 3D baseada nos conceitos de Digital Mo-
delling Daacute ao artista muacuteltiplas Brushes que permitem manipular o objeto a ser definido com
paradigmas transportados de outras aacutereas artiacutesticas Pode tornar mais acessiacutevel para um utilizador
pouco experiente com alguns paradigmas da Computaccedilatildeo Graacutefica a modelaccedilatildeo de objetos com
consideraacutevel detalhe e liberdade artiacutestica [Spe11]
23 Sumaacuterio
Apoacutes o levantamento do estado da arte eacute possiacutevel constatar que as ferramentas de modelaccedilatildeo
manual satildeo a escolha de eleiccedilatildeo para contextos em que o modelador deseja o maior niacutevel controlo
possiacutevel sobre o objeto a ser produzido No entanto considerando ferramentas de modelaccedilatildeo
procedimental tem existido um esforccedilo por parte desta comunidade para tornar a correspondente
experiecircncia de utilizaccedilatildeo mais acessiacutevel a utilizadores pouco familiarizados com o funcionamento
do mesmo Por enquanto a utilizaccedilatildeo deste tipo de ferramentas ainda requer que o conteuacutedo
seja criado em ferramentas dedicadas completamente separadas das ferramentas tradicionais (ie
Maya Blender) essenciais para o trabalho artiacutestico levando a quebras no fluxo de trabalho
13
Estado da Arte e Trabalhos Relacionados
14
Capiacutetulo 3
Metodologia
Com os desenvolvimentos atuais na aacuterea de modelaccedilatildeo procedimental apresentados no capiacute-
tulo 2 eacute possiacutevel verificar que as soluccedilotildees de MP existentes permitem produzir variados tipos de
conteuacutedo tais como terrenos vegetaccedilatildeo edifiacutecios estradas e cidades por outro lado as respeti-
vas integraccedilotildees em ambientes de modelaccedilatildeo manual satildeo algo limitadas ou apenas disponiacuteveis em
ferramentas externas especializadas num uacutenico tipo de conteuacutedo
Da mesma forma como verificado em 21 foram efetuadas vaacuterias tentativas pela comunidade
envolvida em geraccedilatildeo procedimental no sentido a melhorar a interaccedilatildeo com ferramentas dedica-
das agrave geraccedilatildeo procedimental no entanto existe ainda uma grande margem para avanccedilo de uma
integraccedilatildeo geneacuterica destes processos numa ferramenta de modelaccedilatildeo manual Devido agrave falta de
soluccedilotildees que se integrem de forma transparente e acessiacutevel em ambientes de modelaccedilatildeo manual
pretende-se apresentar uma soluccedilatildeo com o objetivo de interligar as duas abordagens neste capiacute-
tulo Inicialmente seraacute apresentada em pormenor a arquitetura da soluccedilatildeo de seguida o protocolo
de comunicaccedilatildeo entre os dois ambientes de modelaccedilatildeo e finalmente seraacute proposto um meacutetodo de
trabalho no qual seraacute descrita a interaccedilatildeo ideal entre o modelador e a soluccedilatildeo proposta
31 Meacutetodo de Trabalho
Numa interaccedilatildeo ideal o modelador teria controlo absoluto sobre os meacutetodos de geraccedilatildeo proce-
dimental e seria possiacutevel modelar procedimentalmente sobre alteraccedilotildees manuais realizadas sobre
o objeto No entanto nem sempre eacute desejado esse niacutevel de controlo e interligaccedilatildeo entre as aborda-
gens Imaginando a modelaccedilatildeo de um edifiacutecio este eacute construiacutedo segundo meacutetodos procedimentais
e recebe como entrada um poliacutegono que delimita a fundaccedilatildeo assim como paracircmetros numeacutericos e
booleanos que definem a geometria resultante Depois de modelado procedimentalmente o objeto
eacute adicionado ao ambiente de modelaccedilatildeo manual onde o modelador pode realizar alteraccedilotildees em
detalhes na geometria ou mesmo alteraccedilotildees profundas na geometria do mesmo
15
Metodologia
Considerando uma situaccedilatildeo em que o modelador realizou alteraccedilotildees profundas na geometria
produzida como por exemplo a reparticcedilatildeo de uma das fachadas do edifiacutecio em trecircs fachadas
Assim que realizadas estas alteraccedilotildees o utilizador pretende alterar a altura do edifiacutecio alterando o
paracircmetro correspondente e requisitando uma atualizaccedilatildeo Para ser possiacutevel manter as alteraccedilotildees
realizadas manualmente e em simultacircneo respeitar as regras definidas pela geraccedilatildeo procedimen-
tal seria necessaacuterio converter estas alteraccedilotildees em regras possiacuteveis de definir no escopo do ambiente
de geraccedilatildeo procedimental
De qualquer das formas as alteraccedilotildees realizadas no ponto anterior podem simplesmente natildeo
fazer sentido apoacutes a aplicaccedilatildeo sobre o objeto que foi reproduzido seguindo as regras definias
por um procedimento Devido a esta limitaccedilatildeo eacute assumido que assim que o utilizador requisita
uma nova execuccedilatildeo de um procedimento o qual natildeo tem problemas em descartar as alteraccedilotildees
executadas manualmente sobre o objeto em questatildeo
Tendo em consideraccedilatildeo esta limitaccedilatildeo eacute possiacutevel estruturar um fluxo de trabalho que melhor
explore as vantagens e limitaccedilotildees de ambas as abordagens de geraccedilatildeo de conteuacutedo tridimensional
O utilizador tem uma panoacuteplia de conteuacutedos procedimentais ao seu dispor que podem ser definidas
via paracircmetros numeacutericos e geomeacutetricos O conteuacutedo eacute adicionado ao ambiente de modelaccedilatildeo ma-
nual e os paracircmetros podem ainda ser editados alterados ao custo de que as modificaccedilotildees manuais
realizadas sobre o objeto sejam descartadas
32 Metodologias de Interaccedilatildeo com o Utilizador
Em relaccedilatildeo agrave interaccedilatildeo com o utilizador foram estudadas trecircs abordagens para a interaccedilatildeo com
meacutetodos de geraccedilatildeo procedimental em ambiente de modelaccedilatildeo manual
321 Modificadores
O conceito de modificadores eacute jaacute utilizado em ambientes de modelaccedilatildeo manual eg no Blen-
der [Bap14 Ble15e] onde satildeo utilizados para realizar operaccedilotildees sobre objetos na cena sem destruir
a geometria subjacente apenas modificam a forma como os objetos satildeo percecionados pelo motor
de renderizaccedilatildeo Esta abordagem eacute uacutetil em situaccedilotildees onde o procedimento a ser executado en-
volve modificaccedilotildees sobre uma geometria base como tal permitindo realizar muacuteltiplas alteraccedilotildees
sobre um objeto podendo estas ser facilmente canceladas recuperando o objeto original No en-
tanto nem todos os recursos de geraccedilatildeo procedimental incidem sobre modificaccedilatildeo de geometria
Os meios de geraccedilatildeo procedimental em muitas situaccedilotildees produzem objetos e cenaacuterios uacutenicos e
independentes de qualquer geometria de entrada
322 Grafos
A abordagem de interaccedilatildeo via grafos eacute atualmente utilizada num ambiente de modelaccedilatildeo ma-
nual para a ediccedilatildeo de materiais [Ble15d] Tambeacutem chamada de Flow-Based Programming esta
16
Metodologia
abordagem permite apresentar ao utilizador os procedimentos como uma caixa negra com pos-
siacuteveis entradas e saiacutedas representadas como ligaccedilotildees de fluxo A correspondente utilizaccedilatildeo na
interaccedilatildeo com geraccedilatildeo procedimental pode permitir o encadeamento de muacuteltiplos procedimentos
No entanto a abordagem pode ser mais trabalhosa para o utilizador introduzindo um niacutevel de
interaccedilatildeo adicional para cada objeto introduzido na cena
323 Funccedilotildees
Esta abordagem disponibiliza ao utilizador cada recurso de geraccedilatildeo procedimental como uma
funccedilatildeo disponiacutevel a qualquer momento na interface da ferramenta de modelaccedilatildeo manual Aquando
da respetiva invocaccedilatildeo satildeo requisitados aos utilizadores os paracircmetros necessaacuterios agrave execuccedilatildeo
A abordagem em causa eacute potencialmente a mais faacutecil de adotar por parte dos utilizadores de
ferramentas de modelaccedilatildeo manual Devido agrave simplicidade na interaccedilatildeo assim como a reduzida
necessidade de tempo e recursos para a implementaccedilatildeo esta foi a abordagem de interaccedilatildeo utilizada
na soluccedilatildeo desenvolvida
33 Arquitetura da Soluccedilatildeo
Para abordar este problema eacute proposta a utilizaccedilatildeo de duas aplicaccedilotildees jaacute presentes no mer-
cado Uma aplicaccedilatildeo dedicada agrave modelaccedilatildeo procedimental e uma aplicaccedilatildeo de modelaccedilatildeo manual
Foi escolhida esta abordagem na medida em que eacute possiacutevel utilizar duas aplicaccedilotildees jaacute existentes
sendo possiacutevel dessa forma aproveitar os pontos fortes de cada soluccedilatildeo com o intuito de otimi-
zar o processo de criaccedilatildeo de novos cenaacuterios e conteuacutedo tridimensional Esta abordagem pode ser
representada como uma soluccedilatildeo estruturada numa arquitetura Cliente-Servidor em que a aplica-
ccedilatildeo de geraccedilatildeo procedimental eacute capaz de fornecer serviccedilos de geraccedilatildeo de conteuacutedo a um ou mais
clientes de modelaccedilatildeo Esta abordagem interliga as duas aplicaccedilotildees atraveacutes de um protocolo de
comunicaccedilatildeo Este permite ao utilizador da ferramenta de modelaccedilatildeo manual requisitar a produ-
ccedilatildeo de conteuacutedo seguindo os valores impostos pelo utilizador nos paracircmetros do procedimento
requisitado O protocolo eacute descrito em maior detalhe na secccedilatildeo 34
331 Vantagens
Faacutecil integraccedilatildeo em diferentes plataformas Devido agrave arquitetura ser baseada na comunicaccedilatildeo
entre duas aplicaccedilotildees por um protocolo de comunicaccedilatildeo geneacuterico eacute com alguma facili-
dade que se realiza a interligaccedilatildeo com diferentes soluccedilotildees de geraccedilatildeo procedimental ou de
modelaccedilatildeo manual Sendo assim possiacutevel a expansatildeo para novos ambientes de modelaccedilatildeo
manual ou mesmo introduzir novas soluccedilotildees de geraccedilatildeo procedimental
Escalabilidade A arquitetura proposta poderaacute permitir que esta seja implementada de modo a que
um servidor central de geraccedilatildeo procedimental sirva por exemplo num ambiente empresa-
rial como um repositoacuterio de recursos de geraccedilatildeo de conteuacutedos desta forma permitindo
17
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Lista de Figuras
11 Captura de ecratilde do viacutedeo jogo Crysis 3 da Electronic Arts 2
21 Procedural sketching of virtual worlds por Smelik et al [STdKB10] 622 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et
al [IOI06b IOI06a] 723 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch 824 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13] 925 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14] 1026 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modelo
NURBS 1127 Interface da ferramenta Blender 1228 Interface da ferramenta Autodesk Maya 12
31 Diagrama do sistema proposto 18
41 Editor Construct em execuccedilatildeo 2242 Grafo exemplo e respetiva geometria produzida 2343 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct 2444 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct
a abrir 2445 Barra de ferramentas depois de aberto um projeto 2646 JSON enviado ao servidor para a execuccedilatildeo de um grafo 2647 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base 2748 Edifiacutecio depois de adicionado agrave cena 2749 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores 28410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular 28411 Custom Properties de um objeto produzido por um grafo Cube 29
51 Cenaacuterio requisitado aos utilizadores 3152 Exemplos de resultados possiacuteveis do grafo Building 3253 Exemplo de resultado do grafo Window 3354 Exemplo de resultado do grafo Door 3355 Exemplo de resultado do grafo CityStreets 3456 Cursor 3D do Blender 36
B1 Grafo Building como visto no editor Construct 51B2 Grafo CityStreets como visto no editor Construct 52B3 Grafo Window como visto no editor Construct 52B4 Grafo Door como visto no editor Construct 53
xi
LISTA DE FIGURAS
B5 Grafo DetailedRoof como visto no editor Construct 53
C1 Cenaacuterio criado pelo utilizador 3 55C2 Cenaacuterio criado pelo utilizador 4 56
xii
Lista de Tabelas
41 Estatiacutesticas dos principais foacuteruns 2242 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender 25
51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e otempo utilizado para construir o cenaacuterio utilizando o add-on desenvolvido 37
52 Resultados da avaliaccedilatildeo de usabilidade do sistema 37
xiii
LISTA DE TABELAS
xiv
Abreviaturas e Siacutembolos
API Application Programming InterfaceCAD Computer-Aided DesignCASE Computer-Aided Software EngineeringCGI Computer-Generated ImageJSON JavaScript Object NotationMP Modelaccedilatildeo ProcedimentalGP Geraccedilatildeo ProcedimentalMM Modelaccedilatildeo ManualSUS System Usability ScaleTCP Transmission Control Protocol
xv
Capiacutetulo 1
Introduccedilatildeo
A criaccedilatildeo de ambientes virtuais eacute um toacutepico muito relevante em computaccedilatildeo graacutefica e reali-
dade virtual tendo aplicaccedilotildees na induacutestria do entretenimento para a produccedilatildeo filmes e videojogos
entre outros Na induacutestria do cinema estes ambientes virtuais satildeo utilizados para criar imagens
impossiacuteveis de reproduzir atraveacutes de meios praacuteticos Na induacutestria dos videojogos cada vez mais
encontramos jogos em ambientes de maior dimensatildeo e com um elevado niacutevel de detalhe (Figura
11)
Em modelaccedilatildeo a abordagem tradicional eacute a de Modelaccedilatildeo Manual que permite ao artista
controlo completo e fino do objeto a ser criado No que toca agrave criaccedilatildeo de cenaacuterios de elevadas
dimensotildees como montanhas cidades estradas e vegetaccedilatildeo a abordagem tradicional torna-se cada
vez menos viaacutevel A introduccedilatildeo de meacutetodos procedimentais na geraccedilatildeo destes conteuacutedos permite
produzir resultados de alta qualidade com alguma facilidade produzindo cenaacuterios numa fraccedilatildeo do
tempo e do custo correspondentes agrave respetiva produccedilatildeo por meio de modelaccedilatildeo manual
Apesar do grande impacto positivo que esta abordagem trouxe para a induacutestria de um ponto
de vista artiacutestico nem sempre o resultado eacute o mais desejado desta forma podendo necessitar
da introduccedilatildeo de pormenores e alteraccedilotildees finas agrave respetiva geometria para produzir um resultado
uacutenico e mais proacuteximo da visatildeo artiacutestica do criador Para tal tecircm sido desenvolvidas teacutecnicas
para uma interaccedilatildeo mais intuitiva com a modelaccedilatildeo procedimental tentado dar ao modelador um
melhor controlo sobre os meacutetodos automatizados que lhes estatildeo subjacentes natildeo possuindo ainda
o niacutevel de controlo fino que uma ferramenta de modelaccedilatildeo manual pode oferecer
1
Introduccedilatildeo
Figura 11 Captura de ecratilde do viacutedeo jogo Crysis 3 da Electronic Arts
11 Contexto
Esta dissertaccedilatildeo insere-se na aacuterea da computaccedilatildeo graacutefica mais especificamente na aacuterea da mo-
delaccedilatildeo tridimensional geraccedilatildeo procedimental de modelos 3D e interaccedilatildeo com os mesmos Estas
aacutereas intersectam-se em rumo a uma melhor interaccedilatildeo com recursos de geraccedilatildeo procedimental
num ambiente de modelaccedilatildeo manual
Esta dissertaccedilatildeo foi realizada na Faculdade de Engenharia da Universidade do Porto no Labo-
ratoacuterio de IampD de Computaccedilatildeo Graacutefica Interaccedilatildeo e Jogos
12 Motivaccedilatildeo e Problema
Os avanccedilos no desenvolvimento de hardware e software resultam numa necessidade de con-
teuacutedo tridimensional maior e mais detalhado criando uma maior carga nas equipas que os pro-
duzem Como mencionado previamente a utilizaccedilatildeo de modelaccedilatildeo procedimental para a criaccedilatildeo
raacutepida de ambientes tridimensionais eacute altamente apelativa para a induacutestria permitindo poupar
tempo e dinheiro comparativamente a uma abordagem manual
No entanto esta abordagem dificulta ao modelador a introduccedilatildeo de pormenores pois os meacute-
todos procedimentais satildeo definidos tipicamente por um conjunto de regras e paracircmetros de uma
forma natildeo intuitiva ou de controlo limitado A simples modificaccedilatildeo de um paracircmetro pode criar
uma reaccedilatildeo em cadeia de modificaccedilotildees que alteram por completo o modelo gerado Eacute assim ape-
lativo encontrar um meacutetodo que melhor aproveite as vantagens das duas abordagens permitindo
aos modeladores uma produccedilatildeo de conteuacutedo tridimensional mais raacutepida e controlada
2
Introduccedilatildeo
13 Objetivos
O objetivo principal deste trabalho eacute desenvolver uma soluccedilatildeo que melhor aproveite as vanta-
gens das duas principais abordagens agrave modelaccedilatildeo 3D para tal eacute possiacutevel identificar os seguintes
objetivos especiacuteficos
bull Investigar o estado da arte da aacuterea da modelaccedilatildeo procedimental e modelaccedilatildeo manual em
particular os avanccedilos realizados na interaccedilatildeo com os meacutetodos utilizados em modelaccedilatildeo pro-
cedimental
bull Estudar as metodologias possiacuteveis para abordar o problema
bull Desenvolver uma soluccedilatildeo utilizando uma abordagem possiacutevel com os recursos disponiacuteveis
bull Testar a soluccedilatildeo com utilizadores proficientes em modelaccedilatildeo de conteuacutedo 3D
14 Estrutura do documento
Esta dissertaccedilatildeo encontra-se dividida em 6 capiacutetulos anexos e referecircncias O capiacutetulo pre-
sente consiste numa descriccedilatildeo do problema da motivaccedilatildeo e dos objetivos propostos para a cor-
respondente realizaccedilatildeo No capiacutetulo 2 eacute realizado um levantamento do estado da arte nas aacutereas
da modelaccedilatildeo procedimental e modelaccedilatildeo manual em especial os avanccedilos realizados na interaccedilatildeo
com os meacutetodos utilizados em modelaccedilatildeo procedimental No capiacutetulo 3 satildeo discutidas as meto-
dologias estudadas para a melhor interaccedilatildeo entre as duas abordagens agrave modelaccedilatildeo sendo tambeacutem
apresentada com maior detalhe a metodologia a ser utilizada
No capiacutetulo 4 satildeo descritos alguns detalhes de implementaccedilatildeo da soluccedilatildeo desenvolvida base-
ada na metodologia discutida no capiacutetulo 3
No capiacutetulo 5 eacute apresentada a metodologia de teste utilizada para avaliar a soluccedilatildeo desenvol-
vida sendo tambeacutem apresentados os resultados obtidos
No capiacutetulo 6 o final da dissertaccedilatildeo satildeo resumidas algumas constataccedilotildees e conclusotildees rea-
lizadas sobre esta dissertaccedilatildeo Eacute efetuada tambeacutem uma listagem de alguns pontos para potencial
trabalho futuro
3
Introduccedilatildeo
4
Capiacutetulo 2
Estado da Arte e TrabalhosRelacionados
Neste capiacutetulo seraacute realizada uma revisatildeo bibliograacutefica que visa apresentar todos os avanccedilos
realizados nas aacutereas da interaccedilatildeo com os meacutetodos de geraccedilatildeo procedimental Seratildeo apresentados
os tipos de conteuacutedo passiacuteveis de serem produzidos por meio destes meacutetodos bem como as teacutec-
nicas utilizadas para a respetiva interaccedilatildeo e geraccedilatildeo Iratildeo tambeacutem ser apresentadas as abordagens
existentes para uma modelaccedilatildeo manual e as ferramentas existentes no mercado
21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundosvirtuais
O paradigma de interaccedilatildeo com meacutetodos de geraccedilatildeo procedimental eacute tradicionalmente funci-
onal Cada procedimento pode ser considerado uma caixa negra de operaccedilotildees que dependendo
de certos valores de entrada produz um ou mais resultados A interaccedilatildeo com estes nem sempre
eacute a mais intuitiva pois para atingir o resultado desejado envolve em repetidas tentativa e erro por
parte do utilizador No entanto em anos recentes tem existido um avanccedilo consideraacutevel nesta aacuterea
tentado conceder ao utilizador maior controlo sobre os meacutetodos de geraccedilatildeo procedimental com
abordagens como Sketch-based editores visuais e Modelaccedilatildeo Procedimental Invertida
211 Teacutecnicas Sketch-based
Esta abordagem tenta aproximar o tipo de interaccedilatildeo com que os principais utilizadores de
meacutetodos de Modelaccedilatildeo Procedimental estatildeo familiarizados Noccedilotildees como Brushes e Sketches satildeo
alguns dos conceitos mais populares entre designers profissionais
5
Estado da Arte e Trabalhos Relacionados
2111 Terrenos
De Carpentier et al [dCB09] propuseram um meacutetodo de ediccedilatildeo de terrenos no qual eacute dada ao
utilizador a possibilidade de alterar o heightfield atraveacutes de procedural brushes tentando combinar
a interaccedilatildeo manual localizada com a modificaccedilatildeo da parametrizaccedilatildeo por completo de heightfields
Esta abordagem eacute capaz de produzir alteraccedilotildees a tempo real graccedilas agrave respetiva implementaccedilatildeo
com shaders
Smelik et al [STdKB10] seguindo a respetiva proposta de modelaccedilatildeo de mundos virtuais
[STdKB08] propotildeem a utilizaccedilatildeo da abordagem Procedural sketching e demonstram-na num
protoacutetipo intitulado de SketchaWorld Esta abordagem eacute dividida em dois principais modos de
interaccedilatildeo (Figura 21) Landscape Mode e Feature Mode
Figura 21 Procedural sketching of virtual worlds por Smelik et al [STdKB10]
No primeiro o utilizador interage com uma vista top-down do terreno divido em grelha e eacute
capaz de definir a informaccedilatildeo geoloacutegica de cada ceacutelula atraveacutes do uso de Brushes Em Feature
Mode o utilizador manipula pontos de controlo correspondendo a vetores ou poliacutegonos que deli-
mitam a localizaccedilatildeo de cidades rios e vegetaccedilatildeo A ferramenta fornece feedback da construccedilatildeo do
terreno a um ritmo consideraacutevel para uma interaccedilatildeo fluida Esta tambeacutem dispotildee de funcionalida-
des como undo e redo para uma melhorar a interaccedilatildeo entre o utilizador e a ferramenta permitindo
assim a introduccedilatildeo de alteraccedilotildees e caso estas natildeo sejam desejadas pelo utilizador estas podem
ser desfeitas rapidamente Gain et al [GMSe09] propotildeem uma soluccedilatildeo que permite ao utilizador
esboccedilar as silhuetas e limites de corpos montanhosos a serem gerados
6
Estado da Arte e Trabalhos Relacionados
2112 Estradas
Num esforccedilo de melhorar a interaccedilatildeo com path layouts Singh et al [SM08] desenvolveram a
ferramenta Drive que permite a conceptualizaccedilatildeo de redes rodoviaacuterias tridimensionais por meio
de esboccedilos que satildeo posteriormente aproximados a clotoacuteides (Curvas em que o raio varia line-
armente) Com esta abordagem eacute possiacutevel produzir itineraacuterios em que as transiccedilotildees entre raios
de curvatura satildeo lineares tornando-os assim adequados para a conduccedilatildeo A ferramenta tambeacutem
introduz Terrain sensitive sketching que por meios automaacuteticos coloca sinalizaccedilatildeo no percurso e
vegetaccedilatildeo nas redondezas
2113 Vegetaccedilatildeo
Figura 22 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et al[IOI06b IOI06a]
O trabalho de Ijiri et al [IOI06b IOI06a] apresenta uma teacutecnica que atraveacutes de traccedilados defi-
nidos pelo utilizador (Figura 22) permite a manipulaccedilatildeo da direccedilatildeo de crescimento de vegetaccedilatildeo
produzida por L-Systems uma abordagem jaacute muito estudada para a criaccedilatildeo de vegetaccedilatildeo pro-
posta por Lindenmayer [Lin68] como um tipo de gramaacutetica formal capaz de representar padrotildees
e geometria fractal existente na vegetaccedilatildeo Em 1988 foi proposto por Prusinkiewicz [PLH88] a
utilizaccedilatildeo de L-systems para a modelaccedilatildeo de vegetaccedilatildeo Ao longo das ultimas deacutecadas tecircm sido
realizados avanccedilos consideraacuteveis na produccedilatildeo de vegetaccedilatildeo realiacutestica [WP95] e a respetiva inte-
raccedilatildeo com o seu meio ambiente [MP96 Pru00] tentado assim produzir vegetaccedilatildeo que melhor
simule o comportamento fiacutesico e bioloacutegico de vegetaccedilatildeo real
Mais recentemente o trabalho de Palubicky et al [PHL+09] foi expandido e transportado
para uma aplicaccedilatildeo para dispositivos iPad em que o modelador tem um controlo fino sobre o
crescimento de uma aacutervore Utilizando o conceito de tree self-organization Longay et al criaram
7
Estado da Arte e Trabalhos Relacionados
a ferramenta TreeSketch 23 que estimula a competiccedilatildeo entre os ramos de uma aacutervore por espaccedilo
e luz dentro dos paracircmetros e inputs visuais dados pelo utilizador [LRBP12]
Figura 23 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch
212 Editores Visuais
Numa tentativa de melhorar a interaccedilatildeo com modelaccedilatildeo procedimental baseada em gramaacuteticas
[WWSR03 MWH+06] Lipp et al propuseram uma abordagem que permite a manipulaccedilatildeo direta
do resultado produzido por uma gramaacutetica O utilizador pode manipular diretamente no objeto as
respetivas dimensotildees e configuraccedilotildees [LWW08]
Mais recentemente Krecklau et al [KK12] introduziram uma abordagem que permite a ge-
raccedilatildeo de cenas a partir de primitivas de alto niacutevel e a correspondente manipulaccedilatildeo por interaccedilatildeo
direta na cena consequentemente permitindo a utilizadores menos experientes a utilizaccedilatildeo de
gramaacuteticas procedimentais complexas sem a necessidade de interaccedilatildeo textual com as mesmas
2121 Visual Node Based
Editores Visual Node Based satildeo utilizados em muitas aplicaccedilotildees comercias como meio de
dar ao utilizador feedback visual do fluxo de informaccedilatildeo Encontra-se em editores de shaders
[Hol15 Aut15b] editores de animaccedilotildees [Tec15] e em editores de texturas [Cod15] A vasta uti-
lizaccedilatildeo da teacutecnica na aacuterea de produccedilatildeo de conteuacutedo 3D por utilizadores com pouca experiecircncia
de programaccedilatildeo levou a que investigadores a utilizassem para a especificaccedilatildeo de gramaacuteticas de
produccedilatildeo
Nesse contexto Patow [Pat12] desenvolveu uma soluccedilatildeo para a construccedilatildeo e manipulaccedilatildeo de
gramaacuteticas por meio de um editor visual onde noacutes que representam operaccedilotildees geomeacutetricas dos
correspondentes antecessores transmitem o resultado aos noacutes sucessores Na mesma publica-
ccedilatildeo Patow realccedila a importacircncia que esta abordagem acarreta para a modelaccedilatildeo procedimental de
edifiacutecios e admite que existe ainda muito potencial por explorar
8
Estado da Arte e Trabalhos Relacionados
Mais recentemente o trabalho de Silva et al [SMBC13] apresenta uma metodologia de edi-
ccedilatildeo em que grafos podem ser encapsulados em noacutes designados Component capazes de representar
construccedilotildees complexas Os noacutes podem ser facilmente introduzidos noutros grafos e editados por
meio de filtros de fluxo colocados nas arestas ou por restriccedilotildees que auxiliam a especificar a utili-
zaccedilatildeo dos noacutes (Figura 24)
Figura 24 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13]
213 Modelaccedilatildeo Procedimental Invertida
Inverse PM eacute uma teacutecnica em que um dado modelo de entrada eacute aproximado a uma represen-
taccedilatildeo procedimental
Aliaga et al [ARB07] apresenta a reconstruccedilatildeo de edifiacutecios por meio de fotografias Nesta
abordagem o utilizador define os limites das fachadas do edifiacutecio criando uma representaccedilatildeo
minimalista De seguida eacute automaticamente aproximada uma gramaacutetica que melhor representa
o edifiacutecio em questatildeo Com os trabalhos de Šrsquotava et al [ŠBM+10] na parametrizaccedilatildeo de arte
vetorial 2D e de Mitra et al [MGP06] em encontrar simetrias em objetos tridimensionais Bokeloh
et al [BWS10] aplica estes conceitos para a descoberta de simetrias nos objetos e a consequente
aproximaccedilatildeo de gramaacuteticas que definam o objeto em questatildeo
As abordagens atuais focam-se em Modelaccedilatildeo invertida de ambientes urbanos no entanto
Vanegas et al [VGDA+12] demonstram uma metodologia de aproximaccedilatildeo de gramaacuteticas capazes
de representar para aleacutem de edifiacutecios sistemas complexos de vegetaccedilatildeo aproximados a um objeto
jaacute existente
9
Estado da Arte e Trabalhos Relacionados
22 Modelaccedilatildeo 3D Manual
Para a produccedilatildeo de objetos tridimensionais os modeladores utilizam ferramentas dedicadas
que lhes datildeo um controlo total sobre o modelo a ser construiacutedo Estes variam em metaacuteforas de
interface e em puacuteblico alvo Nesta secccedilatildeo vatildeo ser abordadas as teacutecnicas de modelaccedilatildeo atualmente
utilizadas por estas ferramentas e seratildeo listadas as ferramentas existentes no mercado e as respeti-
vas funcionalidades principais
221 Teacutecnicas de Modelaccedilatildeo Manual
2211 Polygon Modelling
Polygon Modelling eacute uma abordagem para a representaccedilatildeo de superfiacutecies tridimensionais utili-
zando poliacutegonos estes satildeo representados por veacutertices e arestas e em grupos formam uma Polygon
Mesh que pode ser armazenada de muacuteltiplas formas [TM06 Bau72 Smi06] Eacute possiacutevel criar ma-
lhas veacutertice a veacutertice manualmente No entanto eacute comum a respetiva manipulaccedilatildeo em software
graacutefico concedendo aos modeladores ferramentas interativas como Blender Autodesk Maya e 3D
Studio Max
Figura 25 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14]
Uma das abordagens mais comuns eacute denominada Box Modelling na qual uma forma geomeacute-
trica considerada uma primitiva (ie cubo esfera cilindro) eacute esculpida iterativamente por pas-
sos de subdivisatildeo do objeto e subsequente manipulaccedilatildeo da geometria ateacute se obter o objeto final
[Jon02 sub14] A figura 25 demonstra da teacutecnica Box Modelling para a modelaccedilatildeo de uma face
Esta abordagem pode ser considerada uma abordagem Subtrativa pois eacute atraveacutes da reduccedilatildeo de um
objeto base que eacute obtido o objeto desejado
10
Estado da Arte e Trabalhos Relacionados
O polygon modelling caracteriza-se pelo controlo direto sobre a colocaccedilatildeo de cada veacutertice de
uma superfiacutecie permitindo dessa forma um controlo fino e preciso sobre o resultado a produzir
2212 NURBS
NURBS ou Non-uniform rational B-spline eacute uma generalizaccedilatildeo de B-Splines e Curvas de Beacute-
zier [KR79 Cab92] um modelo matemaacutetico usado para representar curvas e superfiacutecies com
grande precisatildeo e flexibilidade (Figura 26) Eacute principalmente utilizado em aacutereas da computaccedilatildeo
graacutefica (CAD CAM CAE) onde a precisatildeo dos modelos obtidos eacute muito importante Inicialmente
estudada por Matemaacuteticos como I J Schoenberg [Cob84] foi aplicada em sistemas CAD para a
modelaccedilatildeo na induacutestria Automoacutevel [Beacute83 Beacutez81 Bez68]
Figura 26 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modeloNURBS
2213 Digital Sculpting
Digital Sculpting eacute a adaptaccedilatildeo de teacutecnicas utilizadas para moldar materiais como o barro agrave
modelaccedilatildeo 3D Estas ferramentas permitem ao modelador empurrar puxar polir vincare
adicionar ou remover volume Perry et al [PF01] introduziram Kizamu um dos primeiros passos
na aacuterea do Digital Sculpting Os modelos satildeo representados no que eacute chamado de Adaptively Sam-
pled Distance Fields (ADF) [FPRJ00] que permite representar dados volumeacutetricos que tornam o
processo de Digital Sculpting possiacutevel
222 Ferramentas de Modelaccedilatildeo 3D
2221 Blender
O Blender [ble15a] eacute uma ferramenta profissional de modelaccedilatildeo de coacutedigo aberto desen-
volvida pela Blender Foundation Suporta uma grande variedade de primitivas geomeacutetricas in-
11
Estado da Arte e Trabalhos Relacionados
Figura 27 Interface da ferramenta Blender
cluiacutendo Polygon Meshes curvas de Bezier superfiacutecies NURBS Metaballs e Digital Sculpting
Esta destaca-se por ser gratuita e pela facilidade de criar extensotildees [ble15b] usando a API Python
existente [ble15c] que permite adicionar novas funcionalidades agrave ferramenta
2222 Autodesk Maya
Figura 28 Interface da ferramenta Autodesk Maya
O Autodesk Maya [Aut15b] eacute uma ferramenta de produccedilatildeo de conteuacutedo 3D utilizada nas induacutes-
trias do cinema televisatildeo videojogos e arquitetura Eacute de coacutedigo fechado e a respetiva utilizaccedilatildeo
requer que o utilizador possua uma licenccedila Tal como o Blender o Maya daacute aos modeladores
ferramentas para estes criarem objetos de uma forma interativa 28 Apesar de ser uma ferramenta
versaacutetil e capaz de satisfazer as necessidades de todas induacutestrias acima referidas o Autodesk
Maya tende a ser mais utilizado pela induacutestria do Cinema devido agrave vasta customizaccedilatildeo possiacutevel de
aspetos importantes para esta induacutestria como Animaccedilatildeo e VFX [Aut15c]
12
Estado da Arte e Trabalhos Relacionados
2223 Autodesk 3D Studio Max
O 3D Studio Max [Aut15a] eacute outra ferramenta da Autodesk em muitos aspetos semelhante
ao Maya No entanto o 3DS Max estaacute apenas disponiacutevel para maacutequinas de sistema operativo
Windows e sempre foi mais utilizado pela induacutestria dos videojogos para a criaccedilatildeo de modelos 3D
Tal como o Autodesk Maya este dispotildee de poderosos motores de renderizaccedilatildeo Ray Tracing
2224 Zbrush
O Zbrush [Pix15] eacute uma ferramenta de modelaccedilatildeo 3D baseada nos conceitos de Digital Mo-
delling Daacute ao artista muacuteltiplas Brushes que permitem manipular o objeto a ser definido com
paradigmas transportados de outras aacutereas artiacutesticas Pode tornar mais acessiacutevel para um utilizador
pouco experiente com alguns paradigmas da Computaccedilatildeo Graacutefica a modelaccedilatildeo de objetos com
consideraacutevel detalhe e liberdade artiacutestica [Spe11]
23 Sumaacuterio
Apoacutes o levantamento do estado da arte eacute possiacutevel constatar que as ferramentas de modelaccedilatildeo
manual satildeo a escolha de eleiccedilatildeo para contextos em que o modelador deseja o maior niacutevel controlo
possiacutevel sobre o objeto a ser produzido No entanto considerando ferramentas de modelaccedilatildeo
procedimental tem existido um esforccedilo por parte desta comunidade para tornar a correspondente
experiecircncia de utilizaccedilatildeo mais acessiacutevel a utilizadores pouco familiarizados com o funcionamento
do mesmo Por enquanto a utilizaccedilatildeo deste tipo de ferramentas ainda requer que o conteuacutedo
seja criado em ferramentas dedicadas completamente separadas das ferramentas tradicionais (ie
Maya Blender) essenciais para o trabalho artiacutestico levando a quebras no fluxo de trabalho
13
Estado da Arte e Trabalhos Relacionados
14
Capiacutetulo 3
Metodologia
Com os desenvolvimentos atuais na aacuterea de modelaccedilatildeo procedimental apresentados no capiacute-
tulo 2 eacute possiacutevel verificar que as soluccedilotildees de MP existentes permitem produzir variados tipos de
conteuacutedo tais como terrenos vegetaccedilatildeo edifiacutecios estradas e cidades por outro lado as respeti-
vas integraccedilotildees em ambientes de modelaccedilatildeo manual satildeo algo limitadas ou apenas disponiacuteveis em
ferramentas externas especializadas num uacutenico tipo de conteuacutedo
Da mesma forma como verificado em 21 foram efetuadas vaacuterias tentativas pela comunidade
envolvida em geraccedilatildeo procedimental no sentido a melhorar a interaccedilatildeo com ferramentas dedica-
das agrave geraccedilatildeo procedimental no entanto existe ainda uma grande margem para avanccedilo de uma
integraccedilatildeo geneacuterica destes processos numa ferramenta de modelaccedilatildeo manual Devido agrave falta de
soluccedilotildees que se integrem de forma transparente e acessiacutevel em ambientes de modelaccedilatildeo manual
pretende-se apresentar uma soluccedilatildeo com o objetivo de interligar as duas abordagens neste capiacute-
tulo Inicialmente seraacute apresentada em pormenor a arquitetura da soluccedilatildeo de seguida o protocolo
de comunicaccedilatildeo entre os dois ambientes de modelaccedilatildeo e finalmente seraacute proposto um meacutetodo de
trabalho no qual seraacute descrita a interaccedilatildeo ideal entre o modelador e a soluccedilatildeo proposta
31 Meacutetodo de Trabalho
Numa interaccedilatildeo ideal o modelador teria controlo absoluto sobre os meacutetodos de geraccedilatildeo proce-
dimental e seria possiacutevel modelar procedimentalmente sobre alteraccedilotildees manuais realizadas sobre
o objeto No entanto nem sempre eacute desejado esse niacutevel de controlo e interligaccedilatildeo entre as aborda-
gens Imaginando a modelaccedilatildeo de um edifiacutecio este eacute construiacutedo segundo meacutetodos procedimentais
e recebe como entrada um poliacutegono que delimita a fundaccedilatildeo assim como paracircmetros numeacutericos e
booleanos que definem a geometria resultante Depois de modelado procedimentalmente o objeto
eacute adicionado ao ambiente de modelaccedilatildeo manual onde o modelador pode realizar alteraccedilotildees em
detalhes na geometria ou mesmo alteraccedilotildees profundas na geometria do mesmo
15
Metodologia
Considerando uma situaccedilatildeo em que o modelador realizou alteraccedilotildees profundas na geometria
produzida como por exemplo a reparticcedilatildeo de uma das fachadas do edifiacutecio em trecircs fachadas
Assim que realizadas estas alteraccedilotildees o utilizador pretende alterar a altura do edifiacutecio alterando o
paracircmetro correspondente e requisitando uma atualizaccedilatildeo Para ser possiacutevel manter as alteraccedilotildees
realizadas manualmente e em simultacircneo respeitar as regras definidas pela geraccedilatildeo procedimen-
tal seria necessaacuterio converter estas alteraccedilotildees em regras possiacuteveis de definir no escopo do ambiente
de geraccedilatildeo procedimental
De qualquer das formas as alteraccedilotildees realizadas no ponto anterior podem simplesmente natildeo
fazer sentido apoacutes a aplicaccedilatildeo sobre o objeto que foi reproduzido seguindo as regras definias
por um procedimento Devido a esta limitaccedilatildeo eacute assumido que assim que o utilizador requisita
uma nova execuccedilatildeo de um procedimento o qual natildeo tem problemas em descartar as alteraccedilotildees
executadas manualmente sobre o objeto em questatildeo
Tendo em consideraccedilatildeo esta limitaccedilatildeo eacute possiacutevel estruturar um fluxo de trabalho que melhor
explore as vantagens e limitaccedilotildees de ambas as abordagens de geraccedilatildeo de conteuacutedo tridimensional
O utilizador tem uma panoacuteplia de conteuacutedos procedimentais ao seu dispor que podem ser definidas
via paracircmetros numeacutericos e geomeacutetricos O conteuacutedo eacute adicionado ao ambiente de modelaccedilatildeo ma-
nual e os paracircmetros podem ainda ser editados alterados ao custo de que as modificaccedilotildees manuais
realizadas sobre o objeto sejam descartadas
32 Metodologias de Interaccedilatildeo com o Utilizador
Em relaccedilatildeo agrave interaccedilatildeo com o utilizador foram estudadas trecircs abordagens para a interaccedilatildeo com
meacutetodos de geraccedilatildeo procedimental em ambiente de modelaccedilatildeo manual
321 Modificadores
O conceito de modificadores eacute jaacute utilizado em ambientes de modelaccedilatildeo manual eg no Blen-
der [Bap14 Ble15e] onde satildeo utilizados para realizar operaccedilotildees sobre objetos na cena sem destruir
a geometria subjacente apenas modificam a forma como os objetos satildeo percecionados pelo motor
de renderizaccedilatildeo Esta abordagem eacute uacutetil em situaccedilotildees onde o procedimento a ser executado en-
volve modificaccedilotildees sobre uma geometria base como tal permitindo realizar muacuteltiplas alteraccedilotildees
sobre um objeto podendo estas ser facilmente canceladas recuperando o objeto original No en-
tanto nem todos os recursos de geraccedilatildeo procedimental incidem sobre modificaccedilatildeo de geometria
Os meios de geraccedilatildeo procedimental em muitas situaccedilotildees produzem objetos e cenaacuterios uacutenicos e
independentes de qualquer geometria de entrada
322 Grafos
A abordagem de interaccedilatildeo via grafos eacute atualmente utilizada num ambiente de modelaccedilatildeo ma-
nual para a ediccedilatildeo de materiais [Ble15d] Tambeacutem chamada de Flow-Based Programming esta
16
Metodologia
abordagem permite apresentar ao utilizador os procedimentos como uma caixa negra com pos-
siacuteveis entradas e saiacutedas representadas como ligaccedilotildees de fluxo A correspondente utilizaccedilatildeo na
interaccedilatildeo com geraccedilatildeo procedimental pode permitir o encadeamento de muacuteltiplos procedimentos
No entanto a abordagem pode ser mais trabalhosa para o utilizador introduzindo um niacutevel de
interaccedilatildeo adicional para cada objeto introduzido na cena
323 Funccedilotildees
Esta abordagem disponibiliza ao utilizador cada recurso de geraccedilatildeo procedimental como uma
funccedilatildeo disponiacutevel a qualquer momento na interface da ferramenta de modelaccedilatildeo manual Aquando
da respetiva invocaccedilatildeo satildeo requisitados aos utilizadores os paracircmetros necessaacuterios agrave execuccedilatildeo
A abordagem em causa eacute potencialmente a mais faacutecil de adotar por parte dos utilizadores de
ferramentas de modelaccedilatildeo manual Devido agrave simplicidade na interaccedilatildeo assim como a reduzida
necessidade de tempo e recursos para a implementaccedilatildeo esta foi a abordagem de interaccedilatildeo utilizada
na soluccedilatildeo desenvolvida
33 Arquitetura da Soluccedilatildeo
Para abordar este problema eacute proposta a utilizaccedilatildeo de duas aplicaccedilotildees jaacute presentes no mer-
cado Uma aplicaccedilatildeo dedicada agrave modelaccedilatildeo procedimental e uma aplicaccedilatildeo de modelaccedilatildeo manual
Foi escolhida esta abordagem na medida em que eacute possiacutevel utilizar duas aplicaccedilotildees jaacute existentes
sendo possiacutevel dessa forma aproveitar os pontos fortes de cada soluccedilatildeo com o intuito de otimi-
zar o processo de criaccedilatildeo de novos cenaacuterios e conteuacutedo tridimensional Esta abordagem pode ser
representada como uma soluccedilatildeo estruturada numa arquitetura Cliente-Servidor em que a aplica-
ccedilatildeo de geraccedilatildeo procedimental eacute capaz de fornecer serviccedilos de geraccedilatildeo de conteuacutedo a um ou mais
clientes de modelaccedilatildeo Esta abordagem interliga as duas aplicaccedilotildees atraveacutes de um protocolo de
comunicaccedilatildeo Este permite ao utilizador da ferramenta de modelaccedilatildeo manual requisitar a produ-
ccedilatildeo de conteuacutedo seguindo os valores impostos pelo utilizador nos paracircmetros do procedimento
requisitado O protocolo eacute descrito em maior detalhe na secccedilatildeo 34
331 Vantagens
Faacutecil integraccedilatildeo em diferentes plataformas Devido agrave arquitetura ser baseada na comunicaccedilatildeo
entre duas aplicaccedilotildees por um protocolo de comunicaccedilatildeo geneacuterico eacute com alguma facili-
dade que se realiza a interligaccedilatildeo com diferentes soluccedilotildees de geraccedilatildeo procedimental ou de
modelaccedilatildeo manual Sendo assim possiacutevel a expansatildeo para novos ambientes de modelaccedilatildeo
manual ou mesmo introduzir novas soluccedilotildees de geraccedilatildeo procedimental
Escalabilidade A arquitetura proposta poderaacute permitir que esta seja implementada de modo a que
um servidor central de geraccedilatildeo procedimental sirva por exemplo num ambiente empresa-
rial como um repositoacuterio de recursos de geraccedilatildeo de conteuacutedos desta forma permitindo
17
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
LISTA DE FIGURAS
B5 Grafo DetailedRoof como visto no editor Construct 53
C1 Cenaacuterio criado pelo utilizador 3 55C2 Cenaacuterio criado pelo utilizador 4 56
xii
Lista de Tabelas
41 Estatiacutesticas dos principais foacuteruns 2242 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender 25
51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e otempo utilizado para construir o cenaacuterio utilizando o add-on desenvolvido 37
52 Resultados da avaliaccedilatildeo de usabilidade do sistema 37
xiii
LISTA DE TABELAS
xiv
Abreviaturas e Siacutembolos
API Application Programming InterfaceCAD Computer-Aided DesignCASE Computer-Aided Software EngineeringCGI Computer-Generated ImageJSON JavaScript Object NotationMP Modelaccedilatildeo ProcedimentalGP Geraccedilatildeo ProcedimentalMM Modelaccedilatildeo ManualSUS System Usability ScaleTCP Transmission Control Protocol
xv
Capiacutetulo 1
Introduccedilatildeo
A criaccedilatildeo de ambientes virtuais eacute um toacutepico muito relevante em computaccedilatildeo graacutefica e reali-
dade virtual tendo aplicaccedilotildees na induacutestria do entretenimento para a produccedilatildeo filmes e videojogos
entre outros Na induacutestria do cinema estes ambientes virtuais satildeo utilizados para criar imagens
impossiacuteveis de reproduzir atraveacutes de meios praacuteticos Na induacutestria dos videojogos cada vez mais
encontramos jogos em ambientes de maior dimensatildeo e com um elevado niacutevel de detalhe (Figura
11)
Em modelaccedilatildeo a abordagem tradicional eacute a de Modelaccedilatildeo Manual que permite ao artista
controlo completo e fino do objeto a ser criado No que toca agrave criaccedilatildeo de cenaacuterios de elevadas
dimensotildees como montanhas cidades estradas e vegetaccedilatildeo a abordagem tradicional torna-se cada
vez menos viaacutevel A introduccedilatildeo de meacutetodos procedimentais na geraccedilatildeo destes conteuacutedos permite
produzir resultados de alta qualidade com alguma facilidade produzindo cenaacuterios numa fraccedilatildeo do
tempo e do custo correspondentes agrave respetiva produccedilatildeo por meio de modelaccedilatildeo manual
Apesar do grande impacto positivo que esta abordagem trouxe para a induacutestria de um ponto
de vista artiacutestico nem sempre o resultado eacute o mais desejado desta forma podendo necessitar
da introduccedilatildeo de pormenores e alteraccedilotildees finas agrave respetiva geometria para produzir um resultado
uacutenico e mais proacuteximo da visatildeo artiacutestica do criador Para tal tecircm sido desenvolvidas teacutecnicas
para uma interaccedilatildeo mais intuitiva com a modelaccedilatildeo procedimental tentado dar ao modelador um
melhor controlo sobre os meacutetodos automatizados que lhes estatildeo subjacentes natildeo possuindo ainda
o niacutevel de controlo fino que uma ferramenta de modelaccedilatildeo manual pode oferecer
1
Introduccedilatildeo
Figura 11 Captura de ecratilde do viacutedeo jogo Crysis 3 da Electronic Arts
11 Contexto
Esta dissertaccedilatildeo insere-se na aacuterea da computaccedilatildeo graacutefica mais especificamente na aacuterea da mo-
delaccedilatildeo tridimensional geraccedilatildeo procedimental de modelos 3D e interaccedilatildeo com os mesmos Estas
aacutereas intersectam-se em rumo a uma melhor interaccedilatildeo com recursos de geraccedilatildeo procedimental
num ambiente de modelaccedilatildeo manual
Esta dissertaccedilatildeo foi realizada na Faculdade de Engenharia da Universidade do Porto no Labo-
ratoacuterio de IampD de Computaccedilatildeo Graacutefica Interaccedilatildeo e Jogos
12 Motivaccedilatildeo e Problema
Os avanccedilos no desenvolvimento de hardware e software resultam numa necessidade de con-
teuacutedo tridimensional maior e mais detalhado criando uma maior carga nas equipas que os pro-
duzem Como mencionado previamente a utilizaccedilatildeo de modelaccedilatildeo procedimental para a criaccedilatildeo
raacutepida de ambientes tridimensionais eacute altamente apelativa para a induacutestria permitindo poupar
tempo e dinheiro comparativamente a uma abordagem manual
No entanto esta abordagem dificulta ao modelador a introduccedilatildeo de pormenores pois os meacute-
todos procedimentais satildeo definidos tipicamente por um conjunto de regras e paracircmetros de uma
forma natildeo intuitiva ou de controlo limitado A simples modificaccedilatildeo de um paracircmetro pode criar
uma reaccedilatildeo em cadeia de modificaccedilotildees que alteram por completo o modelo gerado Eacute assim ape-
lativo encontrar um meacutetodo que melhor aproveite as vantagens das duas abordagens permitindo
aos modeladores uma produccedilatildeo de conteuacutedo tridimensional mais raacutepida e controlada
2
Introduccedilatildeo
13 Objetivos
O objetivo principal deste trabalho eacute desenvolver uma soluccedilatildeo que melhor aproveite as vanta-
gens das duas principais abordagens agrave modelaccedilatildeo 3D para tal eacute possiacutevel identificar os seguintes
objetivos especiacuteficos
bull Investigar o estado da arte da aacuterea da modelaccedilatildeo procedimental e modelaccedilatildeo manual em
particular os avanccedilos realizados na interaccedilatildeo com os meacutetodos utilizados em modelaccedilatildeo pro-
cedimental
bull Estudar as metodologias possiacuteveis para abordar o problema
bull Desenvolver uma soluccedilatildeo utilizando uma abordagem possiacutevel com os recursos disponiacuteveis
bull Testar a soluccedilatildeo com utilizadores proficientes em modelaccedilatildeo de conteuacutedo 3D
14 Estrutura do documento
Esta dissertaccedilatildeo encontra-se dividida em 6 capiacutetulos anexos e referecircncias O capiacutetulo pre-
sente consiste numa descriccedilatildeo do problema da motivaccedilatildeo e dos objetivos propostos para a cor-
respondente realizaccedilatildeo No capiacutetulo 2 eacute realizado um levantamento do estado da arte nas aacutereas
da modelaccedilatildeo procedimental e modelaccedilatildeo manual em especial os avanccedilos realizados na interaccedilatildeo
com os meacutetodos utilizados em modelaccedilatildeo procedimental No capiacutetulo 3 satildeo discutidas as meto-
dologias estudadas para a melhor interaccedilatildeo entre as duas abordagens agrave modelaccedilatildeo sendo tambeacutem
apresentada com maior detalhe a metodologia a ser utilizada
No capiacutetulo 4 satildeo descritos alguns detalhes de implementaccedilatildeo da soluccedilatildeo desenvolvida base-
ada na metodologia discutida no capiacutetulo 3
No capiacutetulo 5 eacute apresentada a metodologia de teste utilizada para avaliar a soluccedilatildeo desenvol-
vida sendo tambeacutem apresentados os resultados obtidos
No capiacutetulo 6 o final da dissertaccedilatildeo satildeo resumidas algumas constataccedilotildees e conclusotildees rea-
lizadas sobre esta dissertaccedilatildeo Eacute efetuada tambeacutem uma listagem de alguns pontos para potencial
trabalho futuro
3
Introduccedilatildeo
4
Capiacutetulo 2
Estado da Arte e TrabalhosRelacionados
Neste capiacutetulo seraacute realizada uma revisatildeo bibliograacutefica que visa apresentar todos os avanccedilos
realizados nas aacutereas da interaccedilatildeo com os meacutetodos de geraccedilatildeo procedimental Seratildeo apresentados
os tipos de conteuacutedo passiacuteveis de serem produzidos por meio destes meacutetodos bem como as teacutec-
nicas utilizadas para a respetiva interaccedilatildeo e geraccedilatildeo Iratildeo tambeacutem ser apresentadas as abordagens
existentes para uma modelaccedilatildeo manual e as ferramentas existentes no mercado
21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundosvirtuais
O paradigma de interaccedilatildeo com meacutetodos de geraccedilatildeo procedimental eacute tradicionalmente funci-
onal Cada procedimento pode ser considerado uma caixa negra de operaccedilotildees que dependendo
de certos valores de entrada produz um ou mais resultados A interaccedilatildeo com estes nem sempre
eacute a mais intuitiva pois para atingir o resultado desejado envolve em repetidas tentativa e erro por
parte do utilizador No entanto em anos recentes tem existido um avanccedilo consideraacutevel nesta aacuterea
tentado conceder ao utilizador maior controlo sobre os meacutetodos de geraccedilatildeo procedimental com
abordagens como Sketch-based editores visuais e Modelaccedilatildeo Procedimental Invertida
211 Teacutecnicas Sketch-based
Esta abordagem tenta aproximar o tipo de interaccedilatildeo com que os principais utilizadores de
meacutetodos de Modelaccedilatildeo Procedimental estatildeo familiarizados Noccedilotildees como Brushes e Sketches satildeo
alguns dos conceitos mais populares entre designers profissionais
5
Estado da Arte e Trabalhos Relacionados
2111 Terrenos
De Carpentier et al [dCB09] propuseram um meacutetodo de ediccedilatildeo de terrenos no qual eacute dada ao
utilizador a possibilidade de alterar o heightfield atraveacutes de procedural brushes tentando combinar
a interaccedilatildeo manual localizada com a modificaccedilatildeo da parametrizaccedilatildeo por completo de heightfields
Esta abordagem eacute capaz de produzir alteraccedilotildees a tempo real graccedilas agrave respetiva implementaccedilatildeo
com shaders
Smelik et al [STdKB10] seguindo a respetiva proposta de modelaccedilatildeo de mundos virtuais
[STdKB08] propotildeem a utilizaccedilatildeo da abordagem Procedural sketching e demonstram-na num
protoacutetipo intitulado de SketchaWorld Esta abordagem eacute dividida em dois principais modos de
interaccedilatildeo (Figura 21) Landscape Mode e Feature Mode
Figura 21 Procedural sketching of virtual worlds por Smelik et al [STdKB10]
No primeiro o utilizador interage com uma vista top-down do terreno divido em grelha e eacute
capaz de definir a informaccedilatildeo geoloacutegica de cada ceacutelula atraveacutes do uso de Brushes Em Feature
Mode o utilizador manipula pontos de controlo correspondendo a vetores ou poliacutegonos que deli-
mitam a localizaccedilatildeo de cidades rios e vegetaccedilatildeo A ferramenta fornece feedback da construccedilatildeo do
terreno a um ritmo consideraacutevel para uma interaccedilatildeo fluida Esta tambeacutem dispotildee de funcionalida-
des como undo e redo para uma melhorar a interaccedilatildeo entre o utilizador e a ferramenta permitindo
assim a introduccedilatildeo de alteraccedilotildees e caso estas natildeo sejam desejadas pelo utilizador estas podem
ser desfeitas rapidamente Gain et al [GMSe09] propotildeem uma soluccedilatildeo que permite ao utilizador
esboccedilar as silhuetas e limites de corpos montanhosos a serem gerados
6
Estado da Arte e Trabalhos Relacionados
2112 Estradas
Num esforccedilo de melhorar a interaccedilatildeo com path layouts Singh et al [SM08] desenvolveram a
ferramenta Drive que permite a conceptualizaccedilatildeo de redes rodoviaacuterias tridimensionais por meio
de esboccedilos que satildeo posteriormente aproximados a clotoacuteides (Curvas em que o raio varia line-
armente) Com esta abordagem eacute possiacutevel produzir itineraacuterios em que as transiccedilotildees entre raios
de curvatura satildeo lineares tornando-os assim adequados para a conduccedilatildeo A ferramenta tambeacutem
introduz Terrain sensitive sketching que por meios automaacuteticos coloca sinalizaccedilatildeo no percurso e
vegetaccedilatildeo nas redondezas
2113 Vegetaccedilatildeo
Figura 22 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et al[IOI06b IOI06a]
O trabalho de Ijiri et al [IOI06b IOI06a] apresenta uma teacutecnica que atraveacutes de traccedilados defi-
nidos pelo utilizador (Figura 22) permite a manipulaccedilatildeo da direccedilatildeo de crescimento de vegetaccedilatildeo
produzida por L-Systems uma abordagem jaacute muito estudada para a criaccedilatildeo de vegetaccedilatildeo pro-
posta por Lindenmayer [Lin68] como um tipo de gramaacutetica formal capaz de representar padrotildees
e geometria fractal existente na vegetaccedilatildeo Em 1988 foi proposto por Prusinkiewicz [PLH88] a
utilizaccedilatildeo de L-systems para a modelaccedilatildeo de vegetaccedilatildeo Ao longo das ultimas deacutecadas tecircm sido
realizados avanccedilos consideraacuteveis na produccedilatildeo de vegetaccedilatildeo realiacutestica [WP95] e a respetiva inte-
raccedilatildeo com o seu meio ambiente [MP96 Pru00] tentado assim produzir vegetaccedilatildeo que melhor
simule o comportamento fiacutesico e bioloacutegico de vegetaccedilatildeo real
Mais recentemente o trabalho de Palubicky et al [PHL+09] foi expandido e transportado
para uma aplicaccedilatildeo para dispositivos iPad em que o modelador tem um controlo fino sobre o
crescimento de uma aacutervore Utilizando o conceito de tree self-organization Longay et al criaram
7
Estado da Arte e Trabalhos Relacionados
a ferramenta TreeSketch 23 que estimula a competiccedilatildeo entre os ramos de uma aacutervore por espaccedilo
e luz dentro dos paracircmetros e inputs visuais dados pelo utilizador [LRBP12]
Figura 23 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch
212 Editores Visuais
Numa tentativa de melhorar a interaccedilatildeo com modelaccedilatildeo procedimental baseada em gramaacuteticas
[WWSR03 MWH+06] Lipp et al propuseram uma abordagem que permite a manipulaccedilatildeo direta
do resultado produzido por uma gramaacutetica O utilizador pode manipular diretamente no objeto as
respetivas dimensotildees e configuraccedilotildees [LWW08]
Mais recentemente Krecklau et al [KK12] introduziram uma abordagem que permite a ge-
raccedilatildeo de cenas a partir de primitivas de alto niacutevel e a correspondente manipulaccedilatildeo por interaccedilatildeo
direta na cena consequentemente permitindo a utilizadores menos experientes a utilizaccedilatildeo de
gramaacuteticas procedimentais complexas sem a necessidade de interaccedilatildeo textual com as mesmas
2121 Visual Node Based
Editores Visual Node Based satildeo utilizados em muitas aplicaccedilotildees comercias como meio de
dar ao utilizador feedback visual do fluxo de informaccedilatildeo Encontra-se em editores de shaders
[Hol15 Aut15b] editores de animaccedilotildees [Tec15] e em editores de texturas [Cod15] A vasta uti-
lizaccedilatildeo da teacutecnica na aacuterea de produccedilatildeo de conteuacutedo 3D por utilizadores com pouca experiecircncia
de programaccedilatildeo levou a que investigadores a utilizassem para a especificaccedilatildeo de gramaacuteticas de
produccedilatildeo
Nesse contexto Patow [Pat12] desenvolveu uma soluccedilatildeo para a construccedilatildeo e manipulaccedilatildeo de
gramaacuteticas por meio de um editor visual onde noacutes que representam operaccedilotildees geomeacutetricas dos
correspondentes antecessores transmitem o resultado aos noacutes sucessores Na mesma publica-
ccedilatildeo Patow realccedila a importacircncia que esta abordagem acarreta para a modelaccedilatildeo procedimental de
edifiacutecios e admite que existe ainda muito potencial por explorar
8
Estado da Arte e Trabalhos Relacionados
Mais recentemente o trabalho de Silva et al [SMBC13] apresenta uma metodologia de edi-
ccedilatildeo em que grafos podem ser encapsulados em noacutes designados Component capazes de representar
construccedilotildees complexas Os noacutes podem ser facilmente introduzidos noutros grafos e editados por
meio de filtros de fluxo colocados nas arestas ou por restriccedilotildees que auxiliam a especificar a utili-
zaccedilatildeo dos noacutes (Figura 24)
Figura 24 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13]
213 Modelaccedilatildeo Procedimental Invertida
Inverse PM eacute uma teacutecnica em que um dado modelo de entrada eacute aproximado a uma represen-
taccedilatildeo procedimental
Aliaga et al [ARB07] apresenta a reconstruccedilatildeo de edifiacutecios por meio de fotografias Nesta
abordagem o utilizador define os limites das fachadas do edifiacutecio criando uma representaccedilatildeo
minimalista De seguida eacute automaticamente aproximada uma gramaacutetica que melhor representa
o edifiacutecio em questatildeo Com os trabalhos de Šrsquotava et al [ŠBM+10] na parametrizaccedilatildeo de arte
vetorial 2D e de Mitra et al [MGP06] em encontrar simetrias em objetos tridimensionais Bokeloh
et al [BWS10] aplica estes conceitos para a descoberta de simetrias nos objetos e a consequente
aproximaccedilatildeo de gramaacuteticas que definam o objeto em questatildeo
As abordagens atuais focam-se em Modelaccedilatildeo invertida de ambientes urbanos no entanto
Vanegas et al [VGDA+12] demonstram uma metodologia de aproximaccedilatildeo de gramaacuteticas capazes
de representar para aleacutem de edifiacutecios sistemas complexos de vegetaccedilatildeo aproximados a um objeto
jaacute existente
9
Estado da Arte e Trabalhos Relacionados
22 Modelaccedilatildeo 3D Manual
Para a produccedilatildeo de objetos tridimensionais os modeladores utilizam ferramentas dedicadas
que lhes datildeo um controlo total sobre o modelo a ser construiacutedo Estes variam em metaacuteforas de
interface e em puacuteblico alvo Nesta secccedilatildeo vatildeo ser abordadas as teacutecnicas de modelaccedilatildeo atualmente
utilizadas por estas ferramentas e seratildeo listadas as ferramentas existentes no mercado e as respeti-
vas funcionalidades principais
221 Teacutecnicas de Modelaccedilatildeo Manual
2211 Polygon Modelling
Polygon Modelling eacute uma abordagem para a representaccedilatildeo de superfiacutecies tridimensionais utili-
zando poliacutegonos estes satildeo representados por veacutertices e arestas e em grupos formam uma Polygon
Mesh que pode ser armazenada de muacuteltiplas formas [TM06 Bau72 Smi06] Eacute possiacutevel criar ma-
lhas veacutertice a veacutertice manualmente No entanto eacute comum a respetiva manipulaccedilatildeo em software
graacutefico concedendo aos modeladores ferramentas interativas como Blender Autodesk Maya e 3D
Studio Max
Figura 25 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14]
Uma das abordagens mais comuns eacute denominada Box Modelling na qual uma forma geomeacute-
trica considerada uma primitiva (ie cubo esfera cilindro) eacute esculpida iterativamente por pas-
sos de subdivisatildeo do objeto e subsequente manipulaccedilatildeo da geometria ateacute se obter o objeto final
[Jon02 sub14] A figura 25 demonstra da teacutecnica Box Modelling para a modelaccedilatildeo de uma face
Esta abordagem pode ser considerada uma abordagem Subtrativa pois eacute atraveacutes da reduccedilatildeo de um
objeto base que eacute obtido o objeto desejado
10
Estado da Arte e Trabalhos Relacionados
O polygon modelling caracteriza-se pelo controlo direto sobre a colocaccedilatildeo de cada veacutertice de
uma superfiacutecie permitindo dessa forma um controlo fino e preciso sobre o resultado a produzir
2212 NURBS
NURBS ou Non-uniform rational B-spline eacute uma generalizaccedilatildeo de B-Splines e Curvas de Beacute-
zier [KR79 Cab92] um modelo matemaacutetico usado para representar curvas e superfiacutecies com
grande precisatildeo e flexibilidade (Figura 26) Eacute principalmente utilizado em aacutereas da computaccedilatildeo
graacutefica (CAD CAM CAE) onde a precisatildeo dos modelos obtidos eacute muito importante Inicialmente
estudada por Matemaacuteticos como I J Schoenberg [Cob84] foi aplicada em sistemas CAD para a
modelaccedilatildeo na induacutestria Automoacutevel [Beacute83 Beacutez81 Bez68]
Figura 26 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modeloNURBS
2213 Digital Sculpting
Digital Sculpting eacute a adaptaccedilatildeo de teacutecnicas utilizadas para moldar materiais como o barro agrave
modelaccedilatildeo 3D Estas ferramentas permitem ao modelador empurrar puxar polir vincare
adicionar ou remover volume Perry et al [PF01] introduziram Kizamu um dos primeiros passos
na aacuterea do Digital Sculpting Os modelos satildeo representados no que eacute chamado de Adaptively Sam-
pled Distance Fields (ADF) [FPRJ00] que permite representar dados volumeacutetricos que tornam o
processo de Digital Sculpting possiacutevel
222 Ferramentas de Modelaccedilatildeo 3D
2221 Blender
O Blender [ble15a] eacute uma ferramenta profissional de modelaccedilatildeo de coacutedigo aberto desen-
volvida pela Blender Foundation Suporta uma grande variedade de primitivas geomeacutetricas in-
11
Estado da Arte e Trabalhos Relacionados
Figura 27 Interface da ferramenta Blender
cluiacutendo Polygon Meshes curvas de Bezier superfiacutecies NURBS Metaballs e Digital Sculpting
Esta destaca-se por ser gratuita e pela facilidade de criar extensotildees [ble15b] usando a API Python
existente [ble15c] que permite adicionar novas funcionalidades agrave ferramenta
2222 Autodesk Maya
Figura 28 Interface da ferramenta Autodesk Maya
O Autodesk Maya [Aut15b] eacute uma ferramenta de produccedilatildeo de conteuacutedo 3D utilizada nas induacutes-
trias do cinema televisatildeo videojogos e arquitetura Eacute de coacutedigo fechado e a respetiva utilizaccedilatildeo
requer que o utilizador possua uma licenccedila Tal como o Blender o Maya daacute aos modeladores
ferramentas para estes criarem objetos de uma forma interativa 28 Apesar de ser uma ferramenta
versaacutetil e capaz de satisfazer as necessidades de todas induacutestrias acima referidas o Autodesk
Maya tende a ser mais utilizado pela induacutestria do Cinema devido agrave vasta customizaccedilatildeo possiacutevel de
aspetos importantes para esta induacutestria como Animaccedilatildeo e VFX [Aut15c]
12
Estado da Arte e Trabalhos Relacionados
2223 Autodesk 3D Studio Max
O 3D Studio Max [Aut15a] eacute outra ferramenta da Autodesk em muitos aspetos semelhante
ao Maya No entanto o 3DS Max estaacute apenas disponiacutevel para maacutequinas de sistema operativo
Windows e sempre foi mais utilizado pela induacutestria dos videojogos para a criaccedilatildeo de modelos 3D
Tal como o Autodesk Maya este dispotildee de poderosos motores de renderizaccedilatildeo Ray Tracing
2224 Zbrush
O Zbrush [Pix15] eacute uma ferramenta de modelaccedilatildeo 3D baseada nos conceitos de Digital Mo-
delling Daacute ao artista muacuteltiplas Brushes que permitem manipular o objeto a ser definido com
paradigmas transportados de outras aacutereas artiacutesticas Pode tornar mais acessiacutevel para um utilizador
pouco experiente com alguns paradigmas da Computaccedilatildeo Graacutefica a modelaccedilatildeo de objetos com
consideraacutevel detalhe e liberdade artiacutestica [Spe11]
23 Sumaacuterio
Apoacutes o levantamento do estado da arte eacute possiacutevel constatar que as ferramentas de modelaccedilatildeo
manual satildeo a escolha de eleiccedilatildeo para contextos em que o modelador deseja o maior niacutevel controlo
possiacutevel sobre o objeto a ser produzido No entanto considerando ferramentas de modelaccedilatildeo
procedimental tem existido um esforccedilo por parte desta comunidade para tornar a correspondente
experiecircncia de utilizaccedilatildeo mais acessiacutevel a utilizadores pouco familiarizados com o funcionamento
do mesmo Por enquanto a utilizaccedilatildeo deste tipo de ferramentas ainda requer que o conteuacutedo
seja criado em ferramentas dedicadas completamente separadas das ferramentas tradicionais (ie
Maya Blender) essenciais para o trabalho artiacutestico levando a quebras no fluxo de trabalho
13
Estado da Arte e Trabalhos Relacionados
14
Capiacutetulo 3
Metodologia
Com os desenvolvimentos atuais na aacuterea de modelaccedilatildeo procedimental apresentados no capiacute-
tulo 2 eacute possiacutevel verificar que as soluccedilotildees de MP existentes permitem produzir variados tipos de
conteuacutedo tais como terrenos vegetaccedilatildeo edifiacutecios estradas e cidades por outro lado as respeti-
vas integraccedilotildees em ambientes de modelaccedilatildeo manual satildeo algo limitadas ou apenas disponiacuteveis em
ferramentas externas especializadas num uacutenico tipo de conteuacutedo
Da mesma forma como verificado em 21 foram efetuadas vaacuterias tentativas pela comunidade
envolvida em geraccedilatildeo procedimental no sentido a melhorar a interaccedilatildeo com ferramentas dedica-
das agrave geraccedilatildeo procedimental no entanto existe ainda uma grande margem para avanccedilo de uma
integraccedilatildeo geneacuterica destes processos numa ferramenta de modelaccedilatildeo manual Devido agrave falta de
soluccedilotildees que se integrem de forma transparente e acessiacutevel em ambientes de modelaccedilatildeo manual
pretende-se apresentar uma soluccedilatildeo com o objetivo de interligar as duas abordagens neste capiacute-
tulo Inicialmente seraacute apresentada em pormenor a arquitetura da soluccedilatildeo de seguida o protocolo
de comunicaccedilatildeo entre os dois ambientes de modelaccedilatildeo e finalmente seraacute proposto um meacutetodo de
trabalho no qual seraacute descrita a interaccedilatildeo ideal entre o modelador e a soluccedilatildeo proposta
31 Meacutetodo de Trabalho
Numa interaccedilatildeo ideal o modelador teria controlo absoluto sobre os meacutetodos de geraccedilatildeo proce-
dimental e seria possiacutevel modelar procedimentalmente sobre alteraccedilotildees manuais realizadas sobre
o objeto No entanto nem sempre eacute desejado esse niacutevel de controlo e interligaccedilatildeo entre as aborda-
gens Imaginando a modelaccedilatildeo de um edifiacutecio este eacute construiacutedo segundo meacutetodos procedimentais
e recebe como entrada um poliacutegono que delimita a fundaccedilatildeo assim como paracircmetros numeacutericos e
booleanos que definem a geometria resultante Depois de modelado procedimentalmente o objeto
eacute adicionado ao ambiente de modelaccedilatildeo manual onde o modelador pode realizar alteraccedilotildees em
detalhes na geometria ou mesmo alteraccedilotildees profundas na geometria do mesmo
15
Metodologia
Considerando uma situaccedilatildeo em que o modelador realizou alteraccedilotildees profundas na geometria
produzida como por exemplo a reparticcedilatildeo de uma das fachadas do edifiacutecio em trecircs fachadas
Assim que realizadas estas alteraccedilotildees o utilizador pretende alterar a altura do edifiacutecio alterando o
paracircmetro correspondente e requisitando uma atualizaccedilatildeo Para ser possiacutevel manter as alteraccedilotildees
realizadas manualmente e em simultacircneo respeitar as regras definidas pela geraccedilatildeo procedimen-
tal seria necessaacuterio converter estas alteraccedilotildees em regras possiacuteveis de definir no escopo do ambiente
de geraccedilatildeo procedimental
De qualquer das formas as alteraccedilotildees realizadas no ponto anterior podem simplesmente natildeo
fazer sentido apoacutes a aplicaccedilatildeo sobre o objeto que foi reproduzido seguindo as regras definias
por um procedimento Devido a esta limitaccedilatildeo eacute assumido que assim que o utilizador requisita
uma nova execuccedilatildeo de um procedimento o qual natildeo tem problemas em descartar as alteraccedilotildees
executadas manualmente sobre o objeto em questatildeo
Tendo em consideraccedilatildeo esta limitaccedilatildeo eacute possiacutevel estruturar um fluxo de trabalho que melhor
explore as vantagens e limitaccedilotildees de ambas as abordagens de geraccedilatildeo de conteuacutedo tridimensional
O utilizador tem uma panoacuteplia de conteuacutedos procedimentais ao seu dispor que podem ser definidas
via paracircmetros numeacutericos e geomeacutetricos O conteuacutedo eacute adicionado ao ambiente de modelaccedilatildeo ma-
nual e os paracircmetros podem ainda ser editados alterados ao custo de que as modificaccedilotildees manuais
realizadas sobre o objeto sejam descartadas
32 Metodologias de Interaccedilatildeo com o Utilizador
Em relaccedilatildeo agrave interaccedilatildeo com o utilizador foram estudadas trecircs abordagens para a interaccedilatildeo com
meacutetodos de geraccedilatildeo procedimental em ambiente de modelaccedilatildeo manual
321 Modificadores
O conceito de modificadores eacute jaacute utilizado em ambientes de modelaccedilatildeo manual eg no Blen-
der [Bap14 Ble15e] onde satildeo utilizados para realizar operaccedilotildees sobre objetos na cena sem destruir
a geometria subjacente apenas modificam a forma como os objetos satildeo percecionados pelo motor
de renderizaccedilatildeo Esta abordagem eacute uacutetil em situaccedilotildees onde o procedimento a ser executado en-
volve modificaccedilotildees sobre uma geometria base como tal permitindo realizar muacuteltiplas alteraccedilotildees
sobre um objeto podendo estas ser facilmente canceladas recuperando o objeto original No en-
tanto nem todos os recursos de geraccedilatildeo procedimental incidem sobre modificaccedilatildeo de geometria
Os meios de geraccedilatildeo procedimental em muitas situaccedilotildees produzem objetos e cenaacuterios uacutenicos e
independentes de qualquer geometria de entrada
322 Grafos
A abordagem de interaccedilatildeo via grafos eacute atualmente utilizada num ambiente de modelaccedilatildeo ma-
nual para a ediccedilatildeo de materiais [Ble15d] Tambeacutem chamada de Flow-Based Programming esta
16
Metodologia
abordagem permite apresentar ao utilizador os procedimentos como uma caixa negra com pos-
siacuteveis entradas e saiacutedas representadas como ligaccedilotildees de fluxo A correspondente utilizaccedilatildeo na
interaccedilatildeo com geraccedilatildeo procedimental pode permitir o encadeamento de muacuteltiplos procedimentos
No entanto a abordagem pode ser mais trabalhosa para o utilizador introduzindo um niacutevel de
interaccedilatildeo adicional para cada objeto introduzido na cena
323 Funccedilotildees
Esta abordagem disponibiliza ao utilizador cada recurso de geraccedilatildeo procedimental como uma
funccedilatildeo disponiacutevel a qualquer momento na interface da ferramenta de modelaccedilatildeo manual Aquando
da respetiva invocaccedilatildeo satildeo requisitados aos utilizadores os paracircmetros necessaacuterios agrave execuccedilatildeo
A abordagem em causa eacute potencialmente a mais faacutecil de adotar por parte dos utilizadores de
ferramentas de modelaccedilatildeo manual Devido agrave simplicidade na interaccedilatildeo assim como a reduzida
necessidade de tempo e recursos para a implementaccedilatildeo esta foi a abordagem de interaccedilatildeo utilizada
na soluccedilatildeo desenvolvida
33 Arquitetura da Soluccedilatildeo
Para abordar este problema eacute proposta a utilizaccedilatildeo de duas aplicaccedilotildees jaacute presentes no mer-
cado Uma aplicaccedilatildeo dedicada agrave modelaccedilatildeo procedimental e uma aplicaccedilatildeo de modelaccedilatildeo manual
Foi escolhida esta abordagem na medida em que eacute possiacutevel utilizar duas aplicaccedilotildees jaacute existentes
sendo possiacutevel dessa forma aproveitar os pontos fortes de cada soluccedilatildeo com o intuito de otimi-
zar o processo de criaccedilatildeo de novos cenaacuterios e conteuacutedo tridimensional Esta abordagem pode ser
representada como uma soluccedilatildeo estruturada numa arquitetura Cliente-Servidor em que a aplica-
ccedilatildeo de geraccedilatildeo procedimental eacute capaz de fornecer serviccedilos de geraccedilatildeo de conteuacutedo a um ou mais
clientes de modelaccedilatildeo Esta abordagem interliga as duas aplicaccedilotildees atraveacutes de um protocolo de
comunicaccedilatildeo Este permite ao utilizador da ferramenta de modelaccedilatildeo manual requisitar a produ-
ccedilatildeo de conteuacutedo seguindo os valores impostos pelo utilizador nos paracircmetros do procedimento
requisitado O protocolo eacute descrito em maior detalhe na secccedilatildeo 34
331 Vantagens
Faacutecil integraccedilatildeo em diferentes plataformas Devido agrave arquitetura ser baseada na comunicaccedilatildeo
entre duas aplicaccedilotildees por um protocolo de comunicaccedilatildeo geneacuterico eacute com alguma facili-
dade que se realiza a interligaccedilatildeo com diferentes soluccedilotildees de geraccedilatildeo procedimental ou de
modelaccedilatildeo manual Sendo assim possiacutevel a expansatildeo para novos ambientes de modelaccedilatildeo
manual ou mesmo introduzir novas soluccedilotildees de geraccedilatildeo procedimental
Escalabilidade A arquitetura proposta poderaacute permitir que esta seja implementada de modo a que
um servidor central de geraccedilatildeo procedimental sirva por exemplo num ambiente empresa-
rial como um repositoacuterio de recursos de geraccedilatildeo de conteuacutedos desta forma permitindo
17
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Lista de Tabelas
41 Estatiacutesticas dos principais foacuteruns 2242 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender 25
51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e otempo utilizado para construir o cenaacuterio utilizando o add-on desenvolvido 37
52 Resultados da avaliaccedilatildeo de usabilidade do sistema 37
xiii
LISTA DE TABELAS
xiv
Abreviaturas e Siacutembolos
API Application Programming InterfaceCAD Computer-Aided DesignCASE Computer-Aided Software EngineeringCGI Computer-Generated ImageJSON JavaScript Object NotationMP Modelaccedilatildeo ProcedimentalGP Geraccedilatildeo ProcedimentalMM Modelaccedilatildeo ManualSUS System Usability ScaleTCP Transmission Control Protocol
xv
Capiacutetulo 1
Introduccedilatildeo
A criaccedilatildeo de ambientes virtuais eacute um toacutepico muito relevante em computaccedilatildeo graacutefica e reali-
dade virtual tendo aplicaccedilotildees na induacutestria do entretenimento para a produccedilatildeo filmes e videojogos
entre outros Na induacutestria do cinema estes ambientes virtuais satildeo utilizados para criar imagens
impossiacuteveis de reproduzir atraveacutes de meios praacuteticos Na induacutestria dos videojogos cada vez mais
encontramos jogos em ambientes de maior dimensatildeo e com um elevado niacutevel de detalhe (Figura
11)
Em modelaccedilatildeo a abordagem tradicional eacute a de Modelaccedilatildeo Manual que permite ao artista
controlo completo e fino do objeto a ser criado No que toca agrave criaccedilatildeo de cenaacuterios de elevadas
dimensotildees como montanhas cidades estradas e vegetaccedilatildeo a abordagem tradicional torna-se cada
vez menos viaacutevel A introduccedilatildeo de meacutetodos procedimentais na geraccedilatildeo destes conteuacutedos permite
produzir resultados de alta qualidade com alguma facilidade produzindo cenaacuterios numa fraccedilatildeo do
tempo e do custo correspondentes agrave respetiva produccedilatildeo por meio de modelaccedilatildeo manual
Apesar do grande impacto positivo que esta abordagem trouxe para a induacutestria de um ponto
de vista artiacutestico nem sempre o resultado eacute o mais desejado desta forma podendo necessitar
da introduccedilatildeo de pormenores e alteraccedilotildees finas agrave respetiva geometria para produzir um resultado
uacutenico e mais proacuteximo da visatildeo artiacutestica do criador Para tal tecircm sido desenvolvidas teacutecnicas
para uma interaccedilatildeo mais intuitiva com a modelaccedilatildeo procedimental tentado dar ao modelador um
melhor controlo sobre os meacutetodos automatizados que lhes estatildeo subjacentes natildeo possuindo ainda
o niacutevel de controlo fino que uma ferramenta de modelaccedilatildeo manual pode oferecer
1
Introduccedilatildeo
Figura 11 Captura de ecratilde do viacutedeo jogo Crysis 3 da Electronic Arts
11 Contexto
Esta dissertaccedilatildeo insere-se na aacuterea da computaccedilatildeo graacutefica mais especificamente na aacuterea da mo-
delaccedilatildeo tridimensional geraccedilatildeo procedimental de modelos 3D e interaccedilatildeo com os mesmos Estas
aacutereas intersectam-se em rumo a uma melhor interaccedilatildeo com recursos de geraccedilatildeo procedimental
num ambiente de modelaccedilatildeo manual
Esta dissertaccedilatildeo foi realizada na Faculdade de Engenharia da Universidade do Porto no Labo-
ratoacuterio de IampD de Computaccedilatildeo Graacutefica Interaccedilatildeo e Jogos
12 Motivaccedilatildeo e Problema
Os avanccedilos no desenvolvimento de hardware e software resultam numa necessidade de con-
teuacutedo tridimensional maior e mais detalhado criando uma maior carga nas equipas que os pro-
duzem Como mencionado previamente a utilizaccedilatildeo de modelaccedilatildeo procedimental para a criaccedilatildeo
raacutepida de ambientes tridimensionais eacute altamente apelativa para a induacutestria permitindo poupar
tempo e dinheiro comparativamente a uma abordagem manual
No entanto esta abordagem dificulta ao modelador a introduccedilatildeo de pormenores pois os meacute-
todos procedimentais satildeo definidos tipicamente por um conjunto de regras e paracircmetros de uma
forma natildeo intuitiva ou de controlo limitado A simples modificaccedilatildeo de um paracircmetro pode criar
uma reaccedilatildeo em cadeia de modificaccedilotildees que alteram por completo o modelo gerado Eacute assim ape-
lativo encontrar um meacutetodo que melhor aproveite as vantagens das duas abordagens permitindo
aos modeladores uma produccedilatildeo de conteuacutedo tridimensional mais raacutepida e controlada
2
Introduccedilatildeo
13 Objetivos
O objetivo principal deste trabalho eacute desenvolver uma soluccedilatildeo que melhor aproveite as vanta-
gens das duas principais abordagens agrave modelaccedilatildeo 3D para tal eacute possiacutevel identificar os seguintes
objetivos especiacuteficos
bull Investigar o estado da arte da aacuterea da modelaccedilatildeo procedimental e modelaccedilatildeo manual em
particular os avanccedilos realizados na interaccedilatildeo com os meacutetodos utilizados em modelaccedilatildeo pro-
cedimental
bull Estudar as metodologias possiacuteveis para abordar o problema
bull Desenvolver uma soluccedilatildeo utilizando uma abordagem possiacutevel com os recursos disponiacuteveis
bull Testar a soluccedilatildeo com utilizadores proficientes em modelaccedilatildeo de conteuacutedo 3D
14 Estrutura do documento
Esta dissertaccedilatildeo encontra-se dividida em 6 capiacutetulos anexos e referecircncias O capiacutetulo pre-
sente consiste numa descriccedilatildeo do problema da motivaccedilatildeo e dos objetivos propostos para a cor-
respondente realizaccedilatildeo No capiacutetulo 2 eacute realizado um levantamento do estado da arte nas aacutereas
da modelaccedilatildeo procedimental e modelaccedilatildeo manual em especial os avanccedilos realizados na interaccedilatildeo
com os meacutetodos utilizados em modelaccedilatildeo procedimental No capiacutetulo 3 satildeo discutidas as meto-
dologias estudadas para a melhor interaccedilatildeo entre as duas abordagens agrave modelaccedilatildeo sendo tambeacutem
apresentada com maior detalhe a metodologia a ser utilizada
No capiacutetulo 4 satildeo descritos alguns detalhes de implementaccedilatildeo da soluccedilatildeo desenvolvida base-
ada na metodologia discutida no capiacutetulo 3
No capiacutetulo 5 eacute apresentada a metodologia de teste utilizada para avaliar a soluccedilatildeo desenvol-
vida sendo tambeacutem apresentados os resultados obtidos
No capiacutetulo 6 o final da dissertaccedilatildeo satildeo resumidas algumas constataccedilotildees e conclusotildees rea-
lizadas sobre esta dissertaccedilatildeo Eacute efetuada tambeacutem uma listagem de alguns pontos para potencial
trabalho futuro
3
Introduccedilatildeo
4
Capiacutetulo 2
Estado da Arte e TrabalhosRelacionados
Neste capiacutetulo seraacute realizada uma revisatildeo bibliograacutefica que visa apresentar todos os avanccedilos
realizados nas aacutereas da interaccedilatildeo com os meacutetodos de geraccedilatildeo procedimental Seratildeo apresentados
os tipos de conteuacutedo passiacuteveis de serem produzidos por meio destes meacutetodos bem como as teacutec-
nicas utilizadas para a respetiva interaccedilatildeo e geraccedilatildeo Iratildeo tambeacutem ser apresentadas as abordagens
existentes para uma modelaccedilatildeo manual e as ferramentas existentes no mercado
21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundosvirtuais
O paradigma de interaccedilatildeo com meacutetodos de geraccedilatildeo procedimental eacute tradicionalmente funci-
onal Cada procedimento pode ser considerado uma caixa negra de operaccedilotildees que dependendo
de certos valores de entrada produz um ou mais resultados A interaccedilatildeo com estes nem sempre
eacute a mais intuitiva pois para atingir o resultado desejado envolve em repetidas tentativa e erro por
parte do utilizador No entanto em anos recentes tem existido um avanccedilo consideraacutevel nesta aacuterea
tentado conceder ao utilizador maior controlo sobre os meacutetodos de geraccedilatildeo procedimental com
abordagens como Sketch-based editores visuais e Modelaccedilatildeo Procedimental Invertida
211 Teacutecnicas Sketch-based
Esta abordagem tenta aproximar o tipo de interaccedilatildeo com que os principais utilizadores de
meacutetodos de Modelaccedilatildeo Procedimental estatildeo familiarizados Noccedilotildees como Brushes e Sketches satildeo
alguns dos conceitos mais populares entre designers profissionais
5
Estado da Arte e Trabalhos Relacionados
2111 Terrenos
De Carpentier et al [dCB09] propuseram um meacutetodo de ediccedilatildeo de terrenos no qual eacute dada ao
utilizador a possibilidade de alterar o heightfield atraveacutes de procedural brushes tentando combinar
a interaccedilatildeo manual localizada com a modificaccedilatildeo da parametrizaccedilatildeo por completo de heightfields
Esta abordagem eacute capaz de produzir alteraccedilotildees a tempo real graccedilas agrave respetiva implementaccedilatildeo
com shaders
Smelik et al [STdKB10] seguindo a respetiva proposta de modelaccedilatildeo de mundos virtuais
[STdKB08] propotildeem a utilizaccedilatildeo da abordagem Procedural sketching e demonstram-na num
protoacutetipo intitulado de SketchaWorld Esta abordagem eacute dividida em dois principais modos de
interaccedilatildeo (Figura 21) Landscape Mode e Feature Mode
Figura 21 Procedural sketching of virtual worlds por Smelik et al [STdKB10]
No primeiro o utilizador interage com uma vista top-down do terreno divido em grelha e eacute
capaz de definir a informaccedilatildeo geoloacutegica de cada ceacutelula atraveacutes do uso de Brushes Em Feature
Mode o utilizador manipula pontos de controlo correspondendo a vetores ou poliacutegonos que deli-
mitam a localizaccedilatildeo de cidades rios e vegetaccedilatildeo A ferramenta fornece feedback da construccedilatildeo do
terreno a um ritmo consideraacutevel para uma interaccedilatildeo fluida Esta tambeacutem dispotildee de funcionalida-
des como undo e redo para uma melhorar a interaccedilatildeo entre o utilizador e a ferramenta permitindo
assim a introduccedilatildeo de alteraccedilotildees e caso estas natildeo sejam desejadas pelo utilizador estas podem
ser desfeitas rapidamente Gain et al [GMSe09] propotildeem uma soluccedilatildeo que permite ao utilizador
esboccedilar as silhuetas e limites de corpos montanhosos a serem gerados
6
Estado da Arte e Trabalhos Relacionados
2112 Estradas
Num esforccedilo de melhorar a interaccedilatildeo com path layouts Singh et al [SM08] desenvolveram a
ferramenta Drive que permite a conceptualizaccedilatildeo de redes rodoviaacuterias tridimensionais por meio
de esboccedilos que satildeo posteriormente aproximados a clotoacuteides (Curvas em que o raio varia line-
armente) Com esta abordagem eacute possiacutevel produzir itineraacuterios em que as transiccedilotildees entre raios
de curvatura satildeo lineares tornando-os assim adequados para a conduccedilatildeo A ferramenta tambeacutem
introduz Terrain sensitive sketching que por meios automaacuteticos coloca sinalizaccedilatildeo no percurso e
vegetaccedilatildeo nas redondezas
2113 Vegetaccedilatildeo
Figura 22 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et al[IOI06b IOI06a]
O trabalho de Ijiri et al [IOI06b IOI06a] apresenta uma teacutecnica que atraveacutes de traccedilados defi-
nidos pelo utilizador (Figura 22) permite a manipulaccedilatildeo da direccedilatildeo de crescimento de vegetaccedilatildeo
produzida por L-Systems uma abordagem jaacute muito estudada para a criaccedilatildeo de vegetaccedilatildeo pro-
posta por Lindenmayer [Lin68] como um tipo de gramaacutetica formal capaz de representar padrotildees
e geometria fractal existente na vegetaccedilatildeo Em 1988 foi proposto por Prusinkiewicz [PLH88] a
utilizaccedilatildeo de L-systems para a modelaccedilatildeo de vegetaccedilatildeo Ao longo das ultimas deacutecadas tecircm sido
realizados avanccedilos consideraacuteveis na produccedilatildeo de vegetaccedilatildeo realiacutestica [WP95] e a respetiva inte-
raccedilatildeo com o seu meio ambiente [MP96 Pru00] tentado assim produzir vegetaccedilatildeo que melhor
simule o comportamento fiacutesico e bioloacutegico de vegetaccedilatildeo real
Mais recentemente o trabalho de Palubicky et al [PHL+09] foi expandido e transportado
para uma aplicaccedilatildeo para dispositivos iPad em que o modelador tem um controlo fino sobre o
crescimento de uma aacutervore Utilizando o conceito de tree self-organization Longay et al criaram
7
Estado da Arte e Trabalhos Relacionados
a ferramenta TreeSketch 23 que estimula a competiccedilatildeo entre os ramos de uma aacutervore por espaccedilo
e luz dentro dos paracircmetros e inputs visuais dados pelo utilizador [LRBP12]
Figura 23 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch
212 Editores Visuais
Numa tentativa de melhorar a interaccedilatildeo com modelaccedilatildeo procedimental baseada em gramaacuteticas
[WWSR03 MWH+06] Lipp et al propuseram uma abordagem que permite a manipulaccedilatildeo direta
do resultado produzido por uma gramaacutetica O utilizador pode manipular diretamente no objeto as
respetivas dimensotildees e configuraccedilotildees [LWW08]
Mais recentemente Krecklau et al [KK12] introduziram uma abordagem que permite a ge-
raccedilatildeo de cenas a partir de primitivas de alto niacutevel e a correspondente manipulaccedilatildeo por interaccedilatildeo
direta na cena consequentemente permitindo a utilizadores menos experientes a utilizaccedilatildeo de
gramaacuteticas procedimentais complexas sem a necessidade de interaccedilatildeo textual com as mesmas
2121 Visual Node Based
Editores Visual Node Based satildeo utilizados em muitas aplicaccedilotildees comercias como meio de
dar ao utilizador feedback visual do fluxo de informaccedilatildeo Encontra-se em editores de shaders
[Hol15 Aut15b] editores de animaccedilotildees [Tec15] e em editores de texturas [Cod15] A vasta uti-
lizaccedilatildeo da teacutecnica na aacuterea de produccedilatildeo de conteuacutedo 3D por utilizadores com pouca experiecircncia
de programaccedilatildeo levou a que investigadores a utilizassem para a especificaccedilatildeo de gramaacuteticas de
produccedilatildeo
Nesse contexto Patow [Pat12] desenvolveu uma soluccedilatildeo para a construccedilatildeo e manipulaccedilatildeo de
gramaacuteticas por meio de um editor visual onde noacutes que representam operaccedilotildees geomeacutetricas dos
correspondentes antecessores transmitem o resultado aos noacutes sucessores Na mesma publica-
ccedilatildeo Patow realccedila a importacircncia que esta abordagem acarreta para a modelaccedilatildeo procedimental de
edifiacutecios e admite que existe ainda muito potencial por explorar
8
Estado da Arte e Trabalhos Relacionados
Mais recentemente o trabalho de Silva et al [SMBC13] apresenta uma metodologia de edi-
ccedilatildeo em que grafos podem ser encapsulados em noacutes designados Component capazes de representar
construccedilotildees complexas Os noacutes podem ser facilmente introduzidos noutros grafos e editados por
meio de filtros de fluxo colocados nas arestas ou por restriccedilotildees que auxiliam a especificar a utili-
zaccedilatildeo dos noacutes (Figura 24)
Figura 24 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13]
213 Modelaccedilatildeo Procedimental Invertida
Inverse PM eacute uma teacutecnica em que um dado modelo de entrada eacute aproximado a uma represen-
taccedilatildeo procedimental
Aliaga et al [ARB07] apresenta a reconstruccedilatildeo de edifiacutecios por meio de fotografias Nesta
abordagem o utilizador define os limites das fachadas do edifiacutecio criando uma representaccedilatildeo
minimalista De seguida eacute automaticamente aproximada uma gramaacutetica que melhor representa
o edifiacutecio em questatildeo Com os trabalhos de Šrsquotava et al [ŠBM+10] na parametrizaccedilatildeo de arte
vetorial 2D e de Mitra et al [MGP06] em encontrar simetrias em objetos tridimensionais Bokeloh
et al [BWS10] aplica estes conceitos para a descoberta de simetrias nos objetos e a consequente
aproximaccedilatildeo de gramaacuteticas que definam o objeto em questatildeo
As abordagens atuais focam-se em Modelaccedilatildeo invertida de ambientes urbanos no entanto
Vanegas et al [VGDA+12] demonstram uma metodologia de aproximaccedilatildeo de gramaacuteticas capazes
de representar para aleacutem de edifiacutecios sistemas complexos de vegetaccedilatildeo aproximados a um objeto
jaacute existente
9
Estado da Arte e Trabalhos Relacionados
22 Modelaccedilatildeo 3D Manual
Para a produccedilatildeo de objetos tridimensionais os modeladores utilizam ferramentas dedicadas
que lhes datildeo um controlo total sobre o modelo a ser construiacutedo Estes variam em metaacuteforas de
interface e em puacuteblico alvo Nesta secccedilatildeo vatildeo ser abordadas as teacutecnicas de modelaccedilatildeo atualmente
utilizadas por estas ferramentas e seratildeo listadas as ferramentas existentes no mercado e as respeti-
vas funcionalidades principais
221 Teacutecnicas de Modelaccedilatildeo Manual
2211 Polygon Modelling
Polygon Modelling eacute uma abordagem para a representaccedilatildeo de superfiacutecies tridimensionais utili-
zando poliacutegonos estes satildeo representados por veacutertices e arestas e em grupos formam uma Polygon
Mesh que pode ser armazenada de muacuteltiplas formas [TM06 Bau72 Smi06] Eacute possiacutevel criar ma-
lhas veacutertice a veacutertice manualmente No entanto eacute comum a respetiva manipulaccedilatildeo em software
graacutefico concedendo aos modeladores ferramentas interativas como Blender Autodesk Maya e 3D
Studio Max
Figura 25 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14]
Uma das abordagens mais comuns eacute denominada Box Modelling na qual uma forma geomeacute-
trica considerada uma primitiva (ie cubo esfera cilindro) eacute esculpida iterativamente por pas-
sos de subdivisatildeo do objeto e subsequente manipulaccedilatildeo da geometria ateacute se obter o objeto final
[Jon02 sub14] A figura 25 demonstra da teacutecnica Box Modelling para a modelaccedilatildeo de uma face
Esta abordagem pode ser considerada uma abordagem Subtrativa pois eacute atraveacutes da reduccedilatildeo de um
objeto base que eacute obtido o objeto desejado
10
Estado da Arte e Trabalhos Relacionados
O polygon modelling caracteriza-se pelo controlo direto sobre a colocaccedilatildeo de cada veacutertice de
uma superfiacutecie permitindo dessa forma um controlo fino e preciso sobre o resultado a produzir
2212 NURBS
NURBS ou Non-uniform rational B-spline eacute uma generalizaccedilatildeo de B-Splines e Curvas de Beacute-
zier [KR79 Cab92] um modelo matemaacutetico usado para representar curvas e superfiacutecies com
grande precisatildeo e flexibilidade (Figura 26) Eacute principalmente utilizado em aacutereas da computaccedilatildeo
graacutefica (CAD CAM CAE) onde a precisatildeo dos modelos obtidos eacute muito importante Inicialmente
estudada por Matemaacuteticos como I J Schoenberg [Cob84] foi aplicada em sistemas CAD para a
modelaccedilatildeo na induacutestria Automoacutevel [Beacute83 Beacutez81 Bez68]
Figura 26 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modeloNURBS
2213 Digital Sculpting
Digital Sculpting eacute a adaptaccedilatildeo de teacutecnicas utilizadas para moldar materiais como o barro agrave
modelaccedilatildeo 3D Estas ferramentas permitem ao modelador empurrar puxar polir vincare
adicionar ou remover volume Perry et al [PF01] introduziram Kizamu um dos primeiros passos
na aacuterea do Digital Sculpting Os modelos satildeo representados no que eacute chamado de Adaptively Sam-
pled Distance Fields (ADF) [FPRJ00] que permite representar dados volumeacutetricos que tornam o
processo de Digital Sculpting possiacutevel
222 Ferramentas de Modelaccedilatildeo 3D
2221 Blender
O Blender [ble15a] eacute uma ferramenta profissional de modelaccedilatildeo de coacutedigo aberto desen-
volvida pela Blender Foundation Suporta uma grande variedade de primitivas geomeacutetricas in-
11
Estado da Arte e Trabalhos Relacionados
Figura 27 Interface da ferramenta Blender
cluiacutendo Polygon Meshes curvas de Bezier superfiacutecies NURBS Metaballs e Digital Sculpting
Esta destaca-se por ser gratuita e pela facilidade de criar extensotildees [ble15b] usando a API Python
existente [ble15c] que permite adicionar novas funcionalidades agrave ferramenta
2222 Autodesk Maya
Figura 28 Interface da ferramenta Autodesk Maya
O Autodesk Maya [Aut15b] eacute uma ferramenta de produccedilatildeo de conteuacutedo 3D utilizada nas induacutes-
trias do cinema televisatildeo videojogos e arquitetura Eacute de coacutedigo fechado e a respetiva utilizaccedilatildeo
requer que o utilizador possua uma licenccedila Tal como o Blender o Maya daacute aos modeladores
ferramentas para estes criarem objetos de uma forma interativa 28 Apesar de ser uma ferramenta
versaacutetil e capaz de satisfazer as necessidades de todas induacutestrias acima referidas o Autodesk
Maya tende a ser mais utilizado pela induacutestria do Cinema devido agrave vasta customizaccedilatildeo possiacutevel de
aspetos importantes para esta induacutestria como Animaccedilatildeo e VFX [Aut15c]
12
Estado da Arte e Trabalhos Relacionados
2223 Autodesk 3D Studio Max
O 3D Studio Max [Aut15a] eacute outra ferramenta da Autodesk em muitos aspetos semelhante
ao Maya No entanto o 3DS Max estaacute apenas disponiacutevel para maacutequinas de sistema operativo
Windows e sempre foi mais utilizado pela induacutestria dos videojogos para a criaccedilatildeo de modelos 3D
Tal como o Autodesk Maya este dispotildee de poderosos motores de renderizaccedilatildeo Ray Tracing
2224 Zbrush
O Zbrush [Pix15] eacute uma ferramenta de modelaccedilatildeo 3D baseada nos conceitos de Digital Mo-
delling Daacute ao artista muacuteltiplas Brushes que permitem manipular o objeto a ser definido com
paradigmas transportados de outras aacutereas artiacutesticas Pode tornar mais acessiacutevel para um utilizador
pouco experiente com alguns paradigmas da Computaccedilatildeo Graacutefica a modelaccedilatildeo de objetos com
consideraacutevel detalhe e liberdade artiacutestica [Spe11]
23 Sumaacuterio
Apoacutes o levantamento do estado da arte eacute possiacutevel constatar que as ferramentas de modelaccedilatildeo
manual satildeo a escolha de eleiccedilatildeo para contextos em que o modelador deseja o maior niacutevel controlo
possiacutevel sobre o objeto a ser produzido No entanto considerando ferramentas de modelaccedilatildeo
procedimental tem existido um esforccedilo por parte desta comunidade para tornar a correspondente
experiecircncia de utilizaccedilatildeo mais acessiacutevel a utilizadores pouco familiarizados com o funcionamento
do mesmo Por enquanto a utilizaccedilatildeo deste tipo de ferramentas ainda requer que o conteuacutedo
seja criado em ferramentas dedicadas completamente separadas das ferramentas tradicionais (ie
Maya Blender) essenciais para o trabalho artiacutestico levando a quebras no fluxo de trabalho
13
Estado da Arte e Trabalhos Relacionados
14
Capiacutetulo 3
Metodologia
Com os desenvolvimentos atuais na aacuterea de modelaccedilatildeo procedimental apresentados no capiacute-
tulo 2 eacute possiacutevel verificar que as soluccedilotildees de MP existentes permitem produzir variados tipos de
conteuacutedo tais como terrenos vegetaccedilatildeo edifiacutecios estradas e cidades por outro lado as respeti-
vas integraccedilotildees em ambientes de modelaccedilatildeo manual satildeo algo limitadas ou apenas disponiacuteveis em
ferramentas externas especializadas num uacutenico tipo de conteuacutedo
Da mesma forma como verificado em 21 foram efetuadas vaacuterias tentativas pela comunidade
envolvida em geraccedilatildeo procedimental no sentido a melhorar a interaccedilatildeo com ferramentas dedica-
das agrave geraccedilatildeo procedimental no entanto existe ainda uma grande margem para avanccedilo de uma
integraccedilatildeo geneacuterica destes processos numa ferramenta de modelaccedilatildeo manual Devido agrave falta de
soluccedilotildees que se integrem de forma transparente e acessiacutevel em ambientes de modelaccedilatildeo manual
pretende-se apresentar uma soluccedilatildeo com o objetivo de interligar as duas abordagens neste capiacute-
tulo Inicialmente seraacute apresentada em pormenor a arquitetura da soluccedilatildeo de seguida o protocolo
de comunicaccedilatildeo entre os dois ambientes de modelaccedilatildeo e finalmente seraacute proposto um meacutetodo de
trabalho no qual seraacute descrita a interaccedilatildeo ideal entre o modelador e a soluccedilatildeo proposta
31 Meacutetodo de Trabalho
Numa interaccedilatildeo ideal o modelador teria controlo absoluto sobre os meacutetodos de geraccedilatildeo proce-
dimental e seria possiacutevel modelar procedimentalmente sobre alteraccedilotildees manuais realizadas sobre
o objeto No entanto nem sempre eacute desejado esse niacutevel de controlo e interligaccedilatildeo entre as aborda-
gens Imaginando a modelaccedilatildeo de um edifiacutecio este eacute construiacutedo segundo meacutetodos procedimentais
e recebe como entrada um poliacutegono que delimita a fundaccedilatildeo assim como paracircmetros numeacutericos e
booleanos que definem a geometria resultante Depois de modelado procedimentalmente o objeto
eacute adicionado ao ambiente de modelaccedilatildeo manual onde o modelador pode realizar alteraccedilotildees em
detalhes na geometria ou mesmo alteraccedilotildees profundas na geometria do mesmo
15
Metodologia
Considerando uma situaccedilatildeo em que o modelador realizou alteraccedilotildees profundas na geometria
produzida como por exemplo a reparticcedilatildeo de uma das fachadas do edifiacutecio em trecircs fachadas
Assim que realizadas estas alteraccedilotildees o utilizador pretende alterar a altura do edifiacutecio alterando o
paracircmetro correspondente e requisitando uma atualizaccedilatildeo Para ser possiacutevel manter as alteraccedilotildees
realizadas manualmente e em simultacircneo respeitar as regras definidas pela geraccedilatildeo procedimen-
tal seria necessaacuterio converter estas alteraccedilotildees em regras possiacuteveis de definir no escopo do ambiente
de geraccedilatildeo procedimental
De qualquer das formas as alteraccedilotildees realizadas no ponto anterior podem simplesmente natildeo
fazer sentido apoacutes a aplicaccedilatildeo sobre o objeto que foi reproduzido seguindo as regras definias
por um procedimento Devido a esta limitaccedilatildeo eacute assumido que assim que o utilizador requisita
uma nova execuccedilatildeo de um procedimento o qual natildeo tem problemas em descartar as alteraccedilotildees
executadas manualmente sobre o objeto em questatildeo
Tendo em consideraccedilatildeo esta limitaccedilatildeo eacute possiacutevel estruturar um fluxo de trabalho que melhor
explore as vantagens e limitaccedilotildees de ambas as abordagens de geraccedilatildeo de conteuacutedo tridimensional
O utilizador tem uma panoacuteplia de conteuacutedos procedimentais ao seu dispor que podem ser definidas
via paracircmetros numeacutericos e geomeacutetricos O conteuacutedo eacute adicionado ao ambiente de modelaccedilatildeo ma-
nual e os paracircmetros podem ainda ser editados alterados ao custo de que as modificaccedilotildees manuais
realizadas sobre o objeto sejam descartadas
32 Metodologias de Interaccedilatildeo com o Utilizador
Em relaccedilatildeo agrave interaccedilatildeo com o utilizador foram estudadas trecircs abordagens para a interaccedilatildeo com
meacutetodos de geraccedilatildeo procedimental em ambiente de modelaccedilatildeo manual
321 Modificadores
O conceito de modificadores eacute jaacute utilizado em ambientes de modelaccedilatildeo manual eg no Blen-
der [Bap14 Ble15e] onde satildeo utilizados para realizar operaccedilotildees sobre objetos na cena sem destruir
a geometria subjacente apenas modificam a forma como os objetos satildeo percecionados pelo motor
de renderizaccedilatildeo Esta abordagem eacute uacutetil em situaccedilotildees onde o procedimento a ser executado en-
volve modificaccedilotildees sobre uma geometria base como tal permitindo realizar muacuteltiplas alteraccedilotildees
sobre um objeto podendo estas ser facilmente canceladas recuperando o objeto original No en-
tanto nem todos os recursos de geraccedilatildeo procedimental incidem sobre modificaccedilatildeo de geometria
Os meios de geraccedilatildeo procedimental em muitas situaccedilotildees produzem objetos e cenaacuterios uacutenicos e
independentes de qualquer geometria de entrada
322 Grafos
A abordagem de interaccedilatildeo via grafos eacute atualmente utilizada num ambiente de modelaccedilatildeo ma-
nual para a ediccedilatildeo de materiais [Ble15d] Tambeacutem chamada de Flow-Based Programming esta
16
Metodologia
abordagem permite apresentar ao utilizador os procedimentos como uma caixa negra com pos-
siacuteveis entradas e saiacutedas representadas como ligaccedilotildees de fluxo A correspondente utilizaccedilatildeo na
interaccedilatildeo com geraccedilatildeo procedimental pode permitir o encadeamento de muacuteltiplos procedimentos
No entanto a abordagem pode ser mais trabalhosa para o utilizador introduzindo um niacutevel de
interaccedilatildeo adicional para cada objeto introduzido na cena
323 Funccedilotildees
Esta abordagem disponibiliza ao utilizador cada recurso de geraccedilatildeo procedimental como uma
funccedilatildeo disponiacutevel a qualquer momento na interface da ferramenta de modelaccedilatildeo manual Aquando
da respetiva invocaccedilatildeo satildeo requisitados aos utilizadores os paracircmetros necessaacuterios agrave execuccedilatildeo
A abordagem em causa eacute potencialmente a mais faacutecil de adotar por parte dos utilizadores de
ferramentas de modelaccedilatildeo manual Devido agrave simplicidade na interaccedilatildeo assim como a reduzida
necessidade de tempo e recursos para a implementaccedilatildeo esta foi a abordagem de interaccedilatildeo utilizada
na soluccedilatildeo desenvolvida
33 Arquitetura da Soluccedilatildeo
Para abordar este problema eacute proposta a utilizaccedilatildeo de duas aplicaccedilotildees jaacute presentes no mer-
cado Uma aplicaccedilatildeo dedicada agrave modelaccedilatildeo procedimental e uma aplicaccedilatildeo de modelaccedilatildeo manual
Foi escolhida esta abordagem na medida em que eacute possiacutevel utilizar duas aplicaccedilotildees jaacute existentes
sendo possiacutevel dessa forma aproveitar os pontos fortes de cada soluccedilatildeo com o intuito de otimi-
zar o processo de criaccedilatildeo de novos cenaacuterios e conteuacutedo tridimensional Esta abordagem pode ser
representada como uma soluccedilatildeo estruturada numa arquitetura Cliente-Servidor em que a aplica-
ccedilatildeo de geraccedilatildeo procedimental eacute capaz de fornecer serviccedilos de geraccedilatildeo de conteuacutedo a um ou mais
clientes de modelaccedilatildeo Esta abordagem interliga as duas aplicaccedilotildees atraveacutes de um protocolo de
comunicaccedilatildeo Este permite ao utilizador da ferramenta de modelaccedilatildeo manual requisitar a produ-
ccedilatildeo de conteuacutedo seguindo os valores impostos pelo utilizador nos paracircmetros do procedimento
requisitado O protocolo eacute descrito em maior detalhe na secccedilatildeo 34
331 Vantagens
Faacutecil integraccedilatildeo em diferentes plataformas Devido agrave arquitetura ser baseada na comunicaccedilatildeo
entre duas aplicaccedilotildees por um protocolo de comunicaccedilatildeo geneacuterico eacute com alguma facili-
dade que se realiza a interligaccedilatildeo com diferentes soluccedilotildees de geraccedilatildeo procedimental ou de
modelaccedilatildeo manual Sendo assim possiacutevel a expansatildeo para novos ambientes de modelaccedilatildeo
manual ou mesmo introduzir novas soluccedilotildees de geraccedilatildeo procedimental
Escalabilidade A arquitetura proposta poderaacute permitir que esta seja implementada de modo a que
um servidor central de geraccedilatildeo procedimental sirva por exemplo num ambiente empresa-
rial como um repositoacuterio de recursos de geraccedilatildeo de conteuacutedos desta forma permitindo
17
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
LISTA DE TABELAS
xiv
Abreviaturas e Siacutembolos
API Application Programming InterfaceCAD Computer-Aided DesignCASE Computer-Aided Software EngineeringCGI Computer-Generated ImageJSON JavaScript Object NotationMP Modelaccedilatildeo ProcedimentalGP Geraccedilatildeo ProcedimentalMM Modelaccedilatildeo ManualSUS System Usability ScaleTCP Transmission Control Protocol
xv
Capiacutetulo 1
Introduccedilatildeo
A criaccedilatildeo de ambientes virtuais eacute um toacutepico muito relevante em computaccedilatildeo graacutefica e reali-
dade virtual tendo aplicaccedilotildees na induacutestria do entretenimento para a produccedilatildeo filmes e videojogos
entre outros Na induacutestria do cinema estes ambientes virtuais satildeo utilizados para criar imagens
impossiacuteveis de reproduzir atraveacutes de meios praacuteticos Na induacutestria dos videojogos cada vez mais
encontramos jogos em ambientes de maior dimensatildeo e com um elevado niacutevel de detalhe (Figura
11)
Em modelaccedilatildeo a abordagem tradicional eacute a de Modelaccedilatildeo Manual que permite ao artista
controlo completo e fino do objeto a ser criado No que toca agrave criaccedilatildeo de cenaacuterios de elevadas
dimensotildees como montanhas cidades estradas e vegetaccedilatildeo a abordagem tradicional torna-se cada
vez menos viaacutevel A introduccedilatildeo de meacutetodos procedimentais na geraccedilatildeo destes conteuacutedos permite
produzir resultados de alta qualidade com alguma facilidade produzindo cenaacuterios numa fraccedilatildeo do
tempo e do custo correspondentes agrave respetiva produccedilatildeo por meio de modelaccedilatildeo manual
Apesar do grande impacto positivo que esta abordagem trouxe para a induacutestria de um ponto
de vista artiacutestico nem sempre o resultado eacute o mais desejado desta forma podendo necessitar
da introduccedilatildeo de pormenores e alteraccedilotildees finas agrave respetiva geometria para produzir um resultado
uacutenico e mais proacuteximo da visatildeo artiacutestica do criador Para tal tecircm sido desenvolvidas teacutecnicas
para uma interaccedilatildeo mais intuitiva com a modelaccedilatildeo procedimental tentado dar ao modelador um
melhor controlo sobre os meacutetodos automatizados que lhes estatildeo subjacentes natildeo possuindo ainda
o niacutevel de controlo fino que uma ferramenta de modelaccedilatildeo manual pode oferecer
1
Introduccedilatildeo
Figura 11 Captura de ecratilde do viacutedeo jogo Crysis 3 da Electronic Arts
11 Contexto
Esta dissertaccedilatildeo insere-se na aacuterea da computaccedilatildeo graacutefica mais especificamente na aacuterea da mo-
delaccedilatildeo tridimensional geraccedilatildeo procedimental de modelos 3D e interaccedilatildeo com os mesmos Estas
aacutereas intersectam-se em rumo a uma melhor interaccedilatildeo com recursos de geraccedilatildeo procedimental
num ambiente de modelaccedilatildeo manual
Esta dissertaccedilatildeo foi realizada na Faculdade de Engenharia da Universidade do Porto no Labo-
ratoacuterio de IampD de Computaccedilatildeo Graacutefica Interaccedilatildeo e Jogos
12 Motivaccedilatildeo e Problema
Os avanccedilos no desenvolvimento de hardware e software resultam numa necessidade de con-
teuacutedo tridimensional maior e mais detalhado criando uma maior carga nas equipas que os pro-
duzem Como mencionado previamente a utilizaccedilatildeo de modelaccedilatildeo procedimental para a criaccedilatildeo
raacutepida de ambientes tridimensionais eacute altamente apelativa para a induacutestria permitindo poupar
tempo e dinheiro comparativamente a uma abordagem manual
No entanto esta abordagem dificulta ao modelador a introduccedilatildeo de pormenores pois os meacute-
todos procedimentais satildeo definidos tipicamente por um conjunto de regras e paracircmetros de uma
forma natildeo intuitiva ou de controlo limitado A simples modificaccedilatildeo de um paracircmetro pode criar
uma reaccedilatildeo em cadeia de modificaccedilotildees que alteram por completo o modelo gerado Eacute assim ape-
lativo encontrar um meacutetodo que melhor aproveite as vantagens das duas abordagens permitindo
aos modeladores uma produccedilatildeo de conteuacutedo tridimensional mais raacutepida e controlada
2
Introduccedilatildeo
13 Objetivos
O objetivo principal deste trabalho eacute desenvolver uma soluccedilatildeo que melhor aproveite as vanta-
gens das duas principais abordagens agrave modelaccedilatildeo 3D para tal eacute possiacutevel identificar os seguintes
objetivos especiacuteficos
bull Investigar o estado da arte da aacuterea da modelaccedilatildeo procedimental e modelaccedilatildeo manual em
particular os avanccedilos realizados na interaccedilatildeo com os meacutetodos utilizados em modelaccedilatildeo pro-
cedimental
bull Estudar as metodologias possiacuteveis para abordar o problema
bull Desenvolver uma soluccedilatildeo utilizando uma abordagem possiacutevel com os recursos disponiacuteveis
bull Testar a soluccedilatildeo com utilizadores proficientes em modelaccedilatildeo de conteuacutedo 3D
14 Estrutura do documento
Esta dissertaccedilatildeo encontra-se dividida em 6 capiacutetulos anexos e referecircncias O capiacutetulo pre-
sente consiste numa descriccedilatildeo do problema da motivaccedilatildeo e dos objetivos propostos para a cor-
respondente realizaccedilatildeo No capiacutetulo 2 eacute realizado um levantamento do estado da arte nas aacutereas
da modelaccedilatildeo procedimental e modelaccedilatildeo manual em especial os avanccedilos realizados na interaccedilatildeo
com os meacutetodos utilizados em modelaccedilatildeo procedimental No capiacutetulo 3 satildeo discutidas as meto-
dologias estudadas para a melhor interaccedilatildeo entre as duas abordagens agrave modelaccedilatildeo sendo tambeacutem
apresentada com maior detalhe a metodologia a ser utilizada
No capiacutetulo 4 satildeo descritos alguns detalhes de implementaccedilatildeo da soluccedilatildeo desenvolvida base-
ada na metodologia discutida no capiacutetulo 3
No capiacutetulo 5 eacute apresentada a metodologia de teste utilizada para avaliar a soluccedilatildeo desenvol-
vida sendo tambeacutem apresentados os resultados obtidos
No capiacutetulo 6 o final da dissertaccedilatildeo satildeo resumidas algumas constataccedilotildees e conclusotildees rea-
lizadas sobre esta dissertaccedilatildeo Eacute efetuada tambeacutem uma listagem de alguns pontos para potencial
trabalho futuro
3
Introduccedilatildeo
4
Capiacutetulo 2
Estado da Arte e TrabalhosRelacionados
Neste capiacutetulo seraacute realizada uma revisatildeo bibliograacutefica que visa apresentar todos os avanccedilos
realizados nas aacutereas da interaccedilatildeo com os meacutetodos de geraccedilatildeo procedimental Seratildeo apresentados
os tipos de conteuacutedo passiacuteveis de serem produzidos por meio destes meacutetodos bem como as teacutec-
nicas utilizadas para a respetiva interaccedilatildeo e geraccedilatildeo Iratildeo tambeacutem ser apresentadas as abordagens
existentes para uma modelaccedilatildeo manual e as ferramentas existentes no mercado
21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundosvirtuais
O paradigma de interaccedilatildeo com meacutetodos de geraccedilatildeo procedimental eacute tradicionalmente funci-
onal Cada procedimento pode ser considerado uma caixa negra de operaccedilotildees que dependendo
de certos valores de entrada produz um ou mais resultados A interaccedilatildeo com estes nem sempre
eacute a mais intuitiva pois para atingir o resultado desejado envolve em repetidas tentativa e erro por
parte do utilizador No entanto em anos recentes tem existido um avanccedilo consideraacutevel nesta aacuterea
tentado conceder ao utilizador maior controlo sobre os meacutetodos de geraccedilatildeo procedimental com
abordagens como Sketch-based editores visuais e Modelaccedilatildeo Procedimental Invertida
211 Teacutecnicas Sketch-based
Esta abordagem tenta aproximar o tipo de interaccedilatildeo com que os principais utilizadores de
meacutetodos de Modelaccedilatildeo Procedimental estatildeo familiarizados Noccedilotildees como Brushes e Sketches satildeo
alguns dos conceitos mais populares entre designers profissionais
5
Estado da Arte e Trabalhos Relacionados
2111 Terrenos
De Carpentier et al [dCB09] propuseram um meacutetodo de ediccedilatildeo de terrenos no qual eacute dada ao
utilizador a possibilidade de alterar o heightfield atraveacutes de procedural brushes tentando combinar
a interaccedilatildeo manual localizada com a modificaccedilatildeo da parametrizaccedilatildeo por completo de heightfields
Esta abordagem eacute capaz de produzir alteraccedilotildees a tempo real graccedilas agrave respetiva implementaccedilatildeo
com shaders
Smelik et al [STdKB10] seguindo a respetiva proposta de modelaccedilatildeo de mundos virtuais
[STdKB08] propotildeem a utilizaccedilatildeo da abordagem Procedural sketching e demonstram-na num
protoacutetipo intitulado de SketchaWorld Esta abordagem eacute dividida em dois principais modos de
interaccedilatildeo (Figura 21) Landscape Mode e Feature Mode
Figura 21 Procedural sketching of virtual worlds por Smelik et al [STdKB10]
No primeiro o utilizador interage com uma vista top-down do terreno divido em grelha e eacute
capaz de definir a informaccedilatildeo geoloacutegica de cada ceacutelula atraveacutes do uso de Brushes Em Feature
Mode o utilizador manipula pontos de controlo correspondendo a vetores ou poliacutegonos que deli-
mitam a localizaccedilatildeo de cidades rios e vegetaccedilatildeo A ferramenta fornece feedback da construccedilatildeo do
terreno a um ritmo consideraacutevel para uma interaccedilatildeo fluida Esta tambeacutem dispotildee de funcionalida-
des como undo e redo para uma melhorar a interaccedilatildeo entre o utilizador e a ferramenta permitindo
assim a introduccedilatildeo de alteraccedilotildees e caso estas natildeo sejam desejadas pelo utilizador estas podem
ser desfeitas rapidamente Gain et al [GMSe09] propotildeem uma soluccedilatildeo que permite ao utilizador
esboccedilar as silhuetas e limites de corpos montanhosos a serem gerados
6
Estado da Arte e Trabalhos Relacionados
2112 Estradas
Num esforccedilo de melhorar a interaccedilatildeo com path layouts Singh et al [SM08] desenvolveram a
ferramenta Drive que permite a conceptualizaccedilatildeo de redes rodoviaacuterias tridimensionais por meio
de esboccedilos que satildeo posteriormente aproximados a clotoacuteides (Curvas em que o raio varia line-
armente) Com esta abordagem eacute possiacutevel produzir itineraacuterios em que as transiccedilotildees entre raios
de curvatura satildeo lineares tornando-os assim adequados para a conduccedilatildeo A ferramenta tambeacutem
introduz Terrain sensitive sketching que por meios automaacuteticos coloca sinalizaccedilatildeo no percurso e
vegetaccedilatildeo nas redondezas
2113 Vegetaccedilatildeo
Figura 22 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et al[IOI06b IOI06a]
O trabalho de Ijiri et al [IOI06b IOI06a] apresenta uma teacutecnica que atraveacutes de traccedilados defi-
nidos pelo utilizador (Figura 22) permite a manipulaccedilatildeo da direccedilatildeo de crescimento de vegetaccedilatildeo
produzida por L-Systems uma abordagem jaacute muito estudada para a criaccedilatildeo de vegetaccedilatildeo pro-
posta por Lindenmayer [Lin68] como um tipo de gramaacutetica formal capaz de representar padrotildees
e geometria fractal existente na vegetaccedilatildeo Em 1988 foi proposto por Prusinkiewicz [PLH88] a
utilizaccedilatildeo de L-systems para a modelaccedilatildeo de vegetaccedilatildeo Ao longo das ultimas deacutecadas tecircm sido
realizados avanccedilos consideraacuteveis na produccedilatildeo de vegetaccedilatildeo realiacutestica [WP95] e a respetiva inte-
raccedilatildeo com o seu meio ambiente [MP96 Pru00] tentado assim produzir vegetaccedilatildeo que melhor
simule o comportamento fiacutesico e bioloacutegico de vegetaccedilatildeo real
Mais recentemente o trabalho de Palubicky et al [PHL+09] foi expandido e transportado
para uma aplicaccedilatildeo para dispositivos iPad em que o modelador tem um controlo fino sobre o
crescimento de uma aacutervore Utilizando o conceito de tree self-organization Longay et al criaram
7
Estado da Arte e Trabalhos Relacionados
a ferramenta TreeSketch 23 que estimula a competiccedilatildeo entre os ramos de uma aacutervore por espaccedilo
e luz dentro dos paracircmetros e inputs visuais dados pelo utilizador [LRBP12]
Figura 23 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch
212 Editores Visuais
Numa tentativa de melhorar a interaccedilatildeo com modelaccedilatildeo procedimental baseada em gramaacuteticas
[WWSR03 MWH+06] Lipp et al propuseram uma abordagem que permite a manipulaccedilatildeo direta
do resultado produzido por uma gramaacutetica O utilizador pode manipular diretamente no objeto as
respetivas dimensotildees e configuraccedilotildees [LWW08]
Mais recentemente Krecklau et al [KK12] introduziram uma abordagem que permite a ge-
raccedilatildeo de cenas a partir de primitivas de alto niacutevel e a correspondente manipulaccedilatildeo por interaccedilatildeo
direta na cena consequentemente permitindo a utilizadores menos experientes a utilizaccedilatildeo de
gramaacuteticas procedimentais complexas sem a necessidade de interaccedilatildeo textual com as mesmas
2121 Visual Node Based
Editores Visual Node Based satildeo utilizados em muitas aplicaccedilotildees comercias como meio de
dar ao utilizador feedback visual do fluxo de informaccedilatildeo Encontra-se em editores de shaders
[Hol15 Aut15b] editores de animaccedilotildees [Tec15] e em editores de texturas [Cod15] A vasta uti-
lizaccedilatildeo da teacutecnica na aacuterea de produccedilatildeo de conteuacutedo 3D por utilizadores com pouca experiecircncia
de programaccedilatildeo levou a que investigadores a utilizassem para a especificaccedilatildeo de gramaacuteticas de
produccedilatildeo
Nesse contexto Patow [Pat12] desenvolveu uma soluccedilatildeo para a construccedilatildeo e manipulaccedilatildeo de
gramaacuteticas por meio de um editor visual onde noacutes que representam operaccedilotildees geomeacutetricas dos
correspondentes antecessores transmitem o resultado aos noacutes sucessores Na mesma publica-
ccedilatildeo Patow realccedila a importacircncia que esta abordagem acarreta para a modelaccedilatildeo procedimental de
edifiacutecios e admite que existe ainda muito potencial por explorar
8
Estado da Arte e Trabalhos Relacionados
Mais recentemente o trabalho de Silva et al [SMBC13] apresenta uma metodologia de edi-
ccedilatildeo em que grafos podem ser encapsulados em noacutes designados Component capazes de representar
construccedilotildees complexas Os noacutes podem ser facilmente introduzidos noutros grafos e editados por
meio de filtros de fluxo colocados nas arestas ou por restriccedilotildees que auxiliam a especificar a utili-
zaccedilatildeo dos noacutes (Figura 24)
Figura 24 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13]
213 Modelaccedilatildeo Procedimental Invertida
Inverse PM eacute uma teacutecnica em que um dado modelo de entrada eacute aproximado a uma represen-
taccedilatildeo procedimental
Aliaga et al [ARB07] apresenta a reconstruccedilatildeo de edifiacutecios por meio de fotografias Nesta
abordagem o utilizador define os limites das fachadas do edifiacutecio criando uma representaccedilatildeo
minimalista De seguida eacute automaticamente aproximada uma gramaacutetica que melhor representa
o edifiacutecio em questatildeo Com os trabalhos de Šrsquotava et al [ŠBM+10] na parametrizaccedilatildeo de arte
vetorial 2D e de Mitra et al [MGP06] em encontrar simetrias em objetos tridimensionais Bokeloh
et al [BWS10] aplica estes conceitos para a descoberta de simetrias nos objetos e a consequente
aproximaccedilatildeo de gramaacuteticas que definam o objeto em questatildeo
As abordagens atuais focam-se em Modelaccedilatildeo invertida de ambientes urbanos no entanto
Vanegas et al [VGDA+12] demonstram uma metodologia de aproximaccedilatildeo de gramaacuteticas capazes
de representar para aleacutem de edifiacutecios sistemas complexos de vegetaccedilatildeo aproximados a um objeto
jaacute existente
9
Estado da Arte e Trabalhos Relacionados
22 Modelaccedilatildeo 3D Manual
Para a produccedilatildeo de objetos tridimensionais os modeladores utilizam ferramentas dedicadas
que lhes datildeo um controlo total sobre o modelo a ser construiacutedo Estes variam em metaacuteforas de
interface e em puacuteblico alvo Nesta secccedilatildeo vatildeo ser abordadas as teacutecnicas de modelaccedilatildeo atualmente
utilizadas por estas ferramentas e seratildeo listadas as ferramentas existentes no mercado e as respeti-
vas funcionalidades principais
221 Teacutecnicas de Modelaccedilatildeo Manual
2211 Polygon Modelling
Polygon Modelling eacute uma abordagem para a representaccedilatildeo de superfiacutecies tridimensionais utili-
zando poliacutegonos estes satildeo representados por veacutertices e arestas e em grupos formam uma Polygon
Mesh que pode ser armazenada de muacuteltiplas formas [TM06 Bau72 Smi06] Eacute possiacutevel criar ma-
lhas veacutertice a veacutertice manualmente No entanto eacute comum a respetiva manipulaccedilatildeo em software
graacutefico concedendo aos modeladores ferramentas interativas como Blender Autodesk Maya e 3D
Studio Max
Figura 25 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14]
Uma das abordagens mais comuns eacute denominada Box Modelling na qual uma forma geomeacute-
trica considerada uma primitiva (ie cubo esfera cilindro) eacute esculpida iterativamente por pas-
sos de subdivisatildeo do objeto e subsequente manipulaccedilatildeo da geometria ateacute se obter o objeto final
[Jon02 sub14] A figura 25 demonstra da teacutecnica Box Modelling para a modelaccedilatildeo de uma face
Esta abordagem pode ser considerada uma abordagem Subtrativa pois eacute atraveacutes da reduccedilatildeo de um
objeto base que eacute obtido o objeto desejado
10
Estado da Arte e Trabalhos Relacionados
O polygon modelling caracteriza-se pelo controlo direto sobre a colocaccedilatildeo de cada veacutertice de
uma superfiacutecie permitindo dessa forma um controlo fino e preciso sobre o resultado a produzir
2212 NURBS
NURBS ou Non-uniform rational B-spline eacute uma generalizaccedilatildeo de B-Splines e Curvas de Beacute-
zier [KR79 Cab92] um modelo matemaacutetico usado para representar curvas e superfiacutecies com
grande precisatildeo e flexibilidade (Figura 26) Eacute principalmente utilizado em aacutereas da computaccedilatildeo
graacutefica (CAD CAM CAE) onde a precisatildeo dos modelos obtidos eacute muito importante Inicialmente
estudada por Matemaacuteticos como I J Schoenberg [Cob84] foi aplicada em sistemas CAD para a
modelaccedilatildeo na induacutestria Automoacutevel [Beacute83 Beacutez81 Bez68]
Figura 26 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modeloNURBS
2213 Digital Sculpting
Digital Sculpting eacute a adaptaccedilatildeo de teacutecnicas utilizadas para moldar materiais como o barro agrave
modelaccedilatildeo 3D Estas ferramentas permitem ao modelador empurrar puxar polir vincare
adicionar ou remover volume Perry et al [PF01] introduziram Kizamu um dos primeiros passos
na aacuterea do Digital Sculpting Os modelos satildeo representados no que eacute chamado de Adaptively Sam-
pled Distance Fields (ADF) [FPRJ00] que permite representar dados volumeacutetricos que tornam o
processo de Digital Sculpting possiacutevel
222 Ferramentas de Modelaccedilatildeo 3D
2221 Blender
O Blender [ble15a] eacute uma ferramenta profissional de modelaccedilatildeo de coacutedigo aberto desen-
volvida pela Blender Foundation Suporta uma grande variedade de primitivas geomeacutetricas in-
11
Estado da Arte e Trabalhos Relacionados
Figura 27 Interface da ferramenta Blender
cluiacutendo Polygon Meshes curvas de Bezier superfiacutecies NURBS Metaballs e Digital Sculpting
Esta destaca-se por ser gratuita e pela facilidade de criar extensotildees [ble15b] usando a API Python
existente [ble15c] que permite adicionar novas funcionalidades agrave ferramenta
2222 Autodesk Maya
Figura 28 Interface da ferramenta Autodesk Maya
O Autodesk Maya [Aut15b] eacute uma ferramenta de produccedilatildeo de conteuacutedo 3D utilizada nas induacutes-
trias do cinema televisatildeo videojogos e arquitetura Eacute de coacutedigo fechado e a respetiva utilizaccedilatildeo
requer que o utilizador possua uma licenccedila Tal como o Blender o Maya daacute aos modeladores
ferramentas para estes criarem objetos de uma forma interativa 28 Apesar de ser uma ferramenta
versaacutetil e capaz de satisfazer as necessidades de todas induacutestrias acima referidas o Autodesk
Maya tende a ser mais utilizado pela induacutestria do Cinema devido agrave vasta customizaccedilatildeo possiacutevel de
aspetos importantes para esta induacutestria como Animaccedilatildeo e VFX [Aut15c]
12
Estado da Arte e Trabalhos Relacionados
2223 Autodesk 3D Studio Max
O 3D Studio Max [Aut15a] eacute outra ferramenta da Autodesk em muitos aspetos semelhante
ao Maya No entanto o 3DS Max estaacute apenas disponiacutevel para maacutequinas de sistema operativo
Windows e sempre foi mais utilizado pela induacutestria dos videojogos para a criaccedilatildeo de modelos 3D
Tal como o Autodesk Maya este dispotildee de poderosos motores de renderizaccedilatildeo Ray Tracing
2224 Zbrush
O Zbrush [Pix15] eacute uma ferramenta de modelaccedilatildeo 3D baseada nos conceitos de Digital Mo-
delling Daacute ao artista muacuteltiplas Brushes que permitem manipular o objeto a ser definido com
paradigmas transportados de outras aacutereas artiacutesticas Pode tornar mais acessiacutevel para um utilizador
pouco experiente com alguns paradigmas da Computaccedilatildeo Graacutefica a modelaccedilatildeo de objetos com
consideraacutevel detalhe e liberdade artiacutestica [Spe11]
23 Sumaacuterio
Apoacutes o levantamento do estado da arte eacute possiacutevel constatar que as ferramentas de modelaccedilatildeo
manual satildeo a escolha de eleiccedilatildeo para contextos em que o modelador deseja o maior niacutevel controlo
possiacutevel sobre o objeto a ser produzido No entanto considerando ferramentas de modelaccedilatildeo
procedimental tem existido um esforccedilo por parte desta comunidade para tornar a correspondente
experiecircncia de utilizaccedilatildeo mais acessiacutevel a utilizadores pouco familiarizados com o funcionamento
do mesmo Por enquanto a utilizaccedilatildeo deste tipo de ferramentas ainda requer que o conteuacutedo
seja criado em ferramentas dedicadas completamente separadas das ferramentas tradicionais (ie
Maya Blender) essenciais para o trabalho artiacutestico levando a quebras no fluxo de trabalho
13
Estado da Arte e Trabalhos Relacionados
14
Capiacutetulo 3
Metodologia
Com os desenvolvimentos atuais na aacuterea de modelaccedilatildeo procedimental apresentados no capiacute-
tulo 2 eacute possiacutevel verificar que as soluccedilotildees de MP existentes permitem produzir variados tipos de
conteuacutedo tais como terrenos vegetaccedilatildeo edifiacutecios estradas e cidades por outro lado as respeti-
vas integraccedilotildees em ambientes de modelaccedilatildeo manual satildeo algo limitadas ou apenas disponiacuteveis em
ferramentas externas especializadas num uacutenico tipo de conteuacutedo
Da mesma forma como verificado em 21 foram efetuadas vaacuterias tentativas pela comunidade
envolvida em geraccedilatildeo procedimental no sentido a melhorar a interaccedilatildeo com ferramentas dedica-
das agrave geraccedilatildeo procedimental no entanto existe ainda uma grande margem para avanccedilo de uma
integraccedilatildeo geneacuterica destes processos numa ferramenta de modelaccedilatildeo manual Devido agrave falta de
soluccedilotildees que se integrem de forma transparente e acessiacutevel em ambientes de modelaccedilatildeo manual
pretende-se apresentar uma soluccedilatildeo com o objetivo de interligar as duas abordagens neste capiacute-
tulo Inicialmente seraacute apresentada em pormenor a arquitetura da soluccedilatildeo de seguida o protocolo
de comunicaccedilatildeo entre os dois ambientes de modelaccedilatildeo e finalmente seraacute proposto um meacutetodo de
trabalho no qual seraacute descrita a interaccedilatildeo ideal entre o modelador e a soluccedilatildeo proposta
31 Meacutetodo de Trabalho
Numa interaccedilatildeo ideal o modelador teria controlo absoluto sobre os meacutetodos de geraccedilatildeo proce-
dimental e seria possiacutevel modelar procedimentalmente sobre alteraccedilotildees manuais realizadas sobre
o objeto No entanto nem sempre eacute desejado esse niacutevel de controlo e interligaccedilatildeo entre as aborda-
gens Imaginando a modelaccedilatildeo de um edifiacutecio este eacute construiacutedo segundo meacutetodos procedimentais
e recebe como entrada um poliacutegono que delimita a fundaccedilatildeo assim como paracircmetros numeacutericos e
booleanos que definem a geometria resultante Depois de modelado procedimentalmente o objeto
eacute adicionado ao ambiente de modelaccedilatildeo manual onde o modelador pode realizar alteraccedilotildees em
detalhes na geometria ou mesmo alteraccedilotildees profundas na geometria do mesmo
15
Metodologia
Considerando uma situaccedilatildeo em que o modelador realizou alteraccedilotildees profundas na geometria
produzida como por exemplo a reparticcedilatildeo de uma das fachadas do edifiacutecio em trecircs fachadas
Assim que realizadas estas alteraccedilotildees o utilizador pretende alterar a altura do edifiacutecio alterando o
paracircmetro correspondente e requisitando uma atualizaccedilatildeo Para ser possiacutevel manter as alteraccedilotildees
realizadas manualmente e em simultacircneo respeitar as regras definidas pela geraccedilatildeo procedimen-
tal seria necessaacuterio converter estas alteraccedilotildees em regras possiacuteveis de definir no escopo do ambiente
de geraccedilatildeo procedimental
De qualquer das formas as alteraccedilotildees realizadas no ponto anterior podem simplesmente natildeo
fazer sentido apoacutes a aplicaccedilatildeo sobre o objeto que foi reproduzido seguindo as regras definias
por um procedimento Devido a esta limitaccedilatildeo eacute assumido que assim que o utilizador requisita
uma nova execuccedilatildeo de um procedimento o qual natildeo tem problemas em descartar as alteraccedilotildees
executadas manualmente sobre o objeto em questatildeo
Tendo em consideraccedilatildeo esta limitaccedilatildeo eacute possiacutevel estruturar um fluxo de trabalho que melhor
explore as vantagens e limitaccedilotildees de ambas as abordagens de geraccedilatildeo de conteuacutedo tridimensional
O utilizador tem uma panoacuteplia de conteuacutedos procedimentais ao seu dispor que podem ser definidas
via paracircmetros numeacutericos e geomeacutetricos O conteuacutedo eacute adicionado ao ambiente de modelaccedilatildeo ma-
nual e os paracircmetros podem ainda ser editados alterados ao custo de que as modificaccedilotildees manuais
realizadas sobre o objeto sejam descartadas
32 Metodologias de Interaccedilatildeo com o Utilizador
Em relaccedilatildeo agrave interaccedilatildeo com o utilizador foram estudadas trecircs abordagens para a interaccedilatildeo com
meacutetodos de geraccedilatildeo procedimental em ambiente de modelaccedilatildeo manual
321 Modificadores
O conceito de modificadores eacute jaacute utilizado em ambientes de modelaccedilatildeo manual eg no Blen-
der [Bap14 Ble15e] onde satildeo utilizados para realizar operaccedilotildees sobre objetos na cena sem destruir
a geometria subjacente apenas modificam a forma como os objetos satildeo percecionados pelo motor
de renderizaccedilatildeo Esta abordagem eacute uacutetil em situaccedilotildees onde o procedimento a ser executado en-
volve modificaccedilotildees sobre uma geometria base como tal permitindo realizar muacuteltiplas alteraccedilotildees
sobre um objeto podendo estas ser facilmente canceladas recuperando o objeto original No en-
tanto nem todos os recursos de geraccedilatildeo procedimental incidem sobre modificaccedilatildeo de geometria
Os meios de geraccedilatildeo procedimental em muitas situaccedilotildees produzem objetos e cenaacuterios uacutenicos e
independentes de qualquer geometria de entrada
322 Grafos
A abordagem de interaccedilatildeo via grafos eacute atualmente utilizada num ambiente de modelaccedilatildeo ma-
nual para a ediccedilatildeo de materiais [Ble15d] Tambeacutem chamada de Flow-Based Programming esta
16
Metodologia
abordagem permite apresentar ao utilizador os procedimentos como uma caixa negra com pos-
siacuteveis entradas e saiacutedas representadas como ligaccedilotildees de fluxo A correspondente utilizaccedilatildeo na
interaccedilatildeo com geraccedilatildeo procedimental pode permitir o encadeamento de muacuteltiplos procedimentos
No entanto a abordagem pode ser mais trabalhosa para o utilizador introduzindo um niacutevel de
interaccedilatildeo adicional para cada objeto introduzido na cena
323 Funccedilotildees
Esta abordagem disponibiliza ao utilizador cada recurso de geraccedilatildeo procedimental como uma
funccedilatildeo disponiacutevel a qualquer momento na interface da ferramenta de modelaccedilatildeo manual Aquando
da respetiva invocaccedilatildeo satildeo requisitados aos utilizadores os paracircmetros necessaacuterios agrave execuccedilatildeo
A abordagem em causa eacute potencialmente a mais faacutecil de adotar por parte dos utilizadores de
ferramentas de modelaccedilatildeo manual Devido agrave simplicidade na interaccedilatildeo assim como a reduzida
necessidade de tempo e recursos para a implementaccedilatildeo esta foi a abordagem de interaccedilatildeo utilizada
na soluccedilatildeo desenvolvida
33 Arquitetura da Soluccedilatildeo
Para abordar este problema eacute proposta a utilizaccedilatildeo de duas aplicaccedilotildees jaacute presentes no mer-
cado Uma aplicaccedilatildeo dedicada agrave modelaccedilatildeo procedimental e uma aplicaccedilatildeo de modelaccedilatildeo manual
Foi escolhida esta abordagem na medida em que eacute possiacutevel utilizar duas aplicaccedilotildees jaacute existentes
sendo possiacutevel dessa forma aproveitar os pontos fortes de cada soluccedilatildeo com o intuito de otimi-
zar o processo de criaccedilatildeo de novos cenaacuterios e conteuacutedo tridimensional Esta abordagem pode ser
representada como uma soluccedilatildeo estruturada numa arquitetura Cliente-Servidor em que a aplica-
ccedilatildeo de geraccedilatildeo procedimental eacute capaz de fornecer serviccedilos de geraccedilatildeo de conteuacutedo a um ou mais
clientes de modelaccedilatildeo Esta abordagem interliga as duas aplicaccedilotildees atraveacutes de um protocolo de
comunicaccedilatildeo Este permite ao utilizador da ferramenta de modelaccedilatildeo manual requisitar a produ-
ccedilatildeo de conteuacutedo seguindo os valores impostos pelo utilizador nos paracircmetros do procedimento
requisitado O protocolo eacute descrito em maior detalhe na secccedilatildeo 34
331 Vantagens
Faacutecil integraccedilatildeo em diferentes plataformas Devido agrave arquitetura ser baseada na comunicaccedilatildeo
entre duas aplicaccedilotildees por um protocolo de comunicaccedilatildeo geneacuterico eacute com alguma facili-
dade que se realiza a interligaccedilatildeo com diferentes soluccedilotildees de geraccedilatildeo procedimental ou de
modelaccedilatildeo manual Sendo assim possiacutevel a expansatildeo para novos ambientes de modelaccedilatildeo
manual ou mesmo introduzir novas soluccedilotildees de geraccedilatildeo procedimental
Escalabilidade A arquitetura proposta poderaacute permitir que esta seja implementada de modo a que
um servidor central de geraccedilatildeo procedimental sirva por exemplo num ambiente empresa-
rial como um repositoacuterio de recursos de geraccedilatildeo de conteuacutedos desta forma permitindo
17
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Abreviaturas e Siacutembolos
API Application Programming InterfaceCAD Computer-Aided DesignCASE Computer-Aided Software EngineeringCGI Computer-Generated ImageJSON JavaScript Object NotationMP Modelaccedilatildeo ProcedimentalGP Geraccedilatildeo ProcedimentalMM Modelaccedilatildeo ManualSUS System Usability ScaleTCP Transmission Control Protocol
xv
Capiacutetulo 1
Introduccedilatildeo
A criaccedilatildeo de ambientes virtuais eacute um toacutepico muito relevante em computaccedilatildeo graacutefica e reali-
dade virtual tendo aplicaccedilotildees na induacutestria do entretenimento para a produccedilatildeo filmes e videojogos
entre outros Na induacutestria do cinema estes ambientes virtuais satildeo utilizados para criar imagens
impossiacuteveis de reproduzir atraveacutes de meios praacuteticos Na induacutestria dos videojogos cada vez mais
encontramos jogos em ambientes de maior dimensatildeo e com um elevado niacutevel de detalhe (Figura
11)
Em modelaccedilatildeo a abordagem tradicional eacute a de Modelaccedilatildeo Manual que permite ao artista
controlo completo e fino do objeto a ser criado No que toca agrave criaccedilatildeo de cenaacuterios de elevadas
dimensotildees como montanhas cidades estradas e vegetaccedilatildeo a abordagem tradicional torna-se cada
vez menos viaacutevel A introduccedilatildeo de meacutetodos procedimentais na geraccedilatildeo destes conteuacutedos permite
produzir resultados de alta qualidade com alguma facilidade produzindo cenaacuterios numa fraccedilatildeo do
tempo e do custo correspondentes agrave respetiva produccedilatildeo por meio de modelaccedilatildeo manual
Apesar do grande impacto positivo que esta abordagem trouxe para a induacutestria de um ponto
de vista artiacutestico nem sempre o resultado eacute o mais desejado desta forma podendo necessitar
da introduccedilatildeo de pormenores e alteraccedilotildees finas agrave respetiva geometria para produzir um resultado
uacutenico e mais proacuteximo da visatildeo artiacutestica do criador Para tal tecircm sido desenvolvidas teacutecnicas
para uma interaccedilatildeo mais intuitiva com a modelaccedilatildeo procedimental tentado dar ao modelador um
melhor controlo sobre os meacutetodos automatizados que lhes estatildeo subjacentes natildeo possuindo ainda
o niacutevel de controlo fino que uma ferramenta de modelaccedilatildeo manual pode oferecer
1
Introduccedilatildeo
Figura 11 Captura de ecratilde do viacutedeo jogo Crysis 3 da Electronic Arts
11 Contexto
Esta dissertaccedilatildeo insere-se na aacuterea da computaccedilatildeo graacutefica mais especificamente na aacuterea da mo-
delaccedilatildeo tridimensional geraccedilatildeo procedimental de modelos 3D e interaccedilatildeo com os mesmos Estas
aacutereas intersectam-se em rumo a uma melhor interaccedilatildeo com recursos de geraccedilatildeo procedimental
num ambiente de modelaccedilatildeo manual
Esta dissertaccedilatildeo foi realizada na Faculdade de Engenharia da Universidade do Porto no Labo-
ratoacuterio de IampD de Computaccedilatildeo Graacutefica Interaccedilatildeo e Jogos
12 Motivaccedilatildeo e Problema
Os avanccedilos no desenvolvimento de hardware e software resultam numa necessidade de con-
teuacutedo tridimensional maior e mais detalhado criando uma maior carga nas equipas que os pro-
duzem Como mencionado previamente a utilizaccedilatildeo de modelaccedilatildeo procedimental para a criaccedilatildeo
raacutepida de ambientes tridimensionais eacute altamente apelativa para a induacutestria permitindo poupar
tempo e dinheiro comparativamente a uma abordagem manual
No entanto esta abordagem dificulta ao modelador a introduccedilatildeo de pormenores pois os meacute-
todos procedimentais satildeo definidos tipicamente por um conjunto de regras e paracircmetros de uma
forma natildeo intuitiva ou de controlo limitado A simples modificaccedilatildeo de um paracircmetro pode criar
uma reaccedilatildeo em cadeia de modificaccedilotildees que alteram por completo o modelo gerado Eacute assim ape-
lativo encontrar um meacutetodo que melhor aproveite as vantagens das duas abordagens permitindo
aos modeladores uma produccedilatildeo de conteuacutedo tridimensional mais raacutepida e controlada
2
Introduccedilatildeo
13 Objetivos
O objetivo principal deste trabalho eacute desenvolver uma soluccedilatildeo que melhor aproveite as vanta-
gens das duas principais abordagens agrave modelaccedilatildeo 3D para tal eacute possiacutevel identificar os seguintes
objetivos especiacuteficos
bull Investigar o estado da arte da aacuterea da modelaccedilatildeo procedimental e modelaccedilatildeo manual em
particular os avanccedilos realizados na interaccedilatildeo com os meacutetodos utilizados em modelaccedilatildeo pro-
cedimental
bull Estudar as metodologias possiacuteveis para abordar o problema
bull Desenvolver uma soluccedilatildeo utilizando uma abordagem possiacutevel com os recursos disponiacuteveis
bull Testar a soluccedilatildeo com utilizadores proficientes em modelaccedilatildeo de conteuacutedo 3D
14 Estrutura do documento
Esta dissertaccedilatildeo encontra-se dividida em 6 capiacutetulos anexos e referecircncias O capiacutetulo pre-
sente consiste numa descriccedilatildeo do problema da motivaccedilatildeo e dos objetivos propostos para a cor-
respondente realizaccedilatildeo No capiacutetulo 2 eacute realizado um levantamento do estado da arte nas aacutereas
da modelaccedilatildeo procedimental e modelaccedilatildeo manual em especial os avanccedilos realizados na interaccedilatildeo
com os meacutetodos utilizados em modelaccedilatildeo procedimental No capiacutetulo 3 satildeo discutidas as meto-
dologias estudadas para a melhor interaccedilatildeo entre as duas abordagens agrave modelaccedilatildeo sendo tambeacutem
apresentada com maior detalhe a metodologia a ser utilizada
No capiacutetulo 4 satildeo descritos alguns detalhes de implementaccedilatildeo da soluccedilatildeo desenvolvida base-
ada na metodologia discutida no capiacutetulo 3
No capiacutetulo 5 eacute apresentada a metodologia de teste utilizada para avaliar a soluccedilatildeo desenvol-
vida sendo tambeacutem apresentados os resultados obtidos
No capiacutetulo 6 o final da dissertaccedilatildeo satildeo resumidas algumas constataccedilotildees e conclusotildees rea-
lizadas sobre esta dissertaccedilatildeo Eacute efetuada tambeacutem uma listagem de alguns pontos para potencial
trabalho futuro
3
Introduccedilatildeo
4
Capiacutetulo 2
Estado da Arte e TrabalhosRelacionados
Neste capiacutetulo seraacute realizada uma revisatildeo bibliograacutefica que visa apresentar todos os avanccedilos
realizados nas aacutereas da interaccedilatildeo com os meacutetodos de geraccedilatildeo procedimental Seratildeo apresentados
os tipos de conteuacutedo passiacuteveis de serem produzidos por meio destes meacutetodos bem como as teacutec-
nicas utilizadas para a respetiva interaccedilatildeo e geraccedilatildeo Iratildeo tambeacutem ser apresentadas as abordagens
existentes para uma modelaccedilatildeo manual e as ferramentas existentes no mercado
21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundosvirtuais
O paradigma de interaccedilatildeo com meacutetodos de geraccedilatildeo procedimental eacute tradicionalmente funci-
onal Cada procedimento pode ser considerado uma caixa negra de operaccedilotildees que dependendo
de certos valores de entrada produz um ou mais resultados A interaccedilatildeo com estes nem sempre
eacute a mais intuitiva pois para atingir o resultado desejado envolve em repetidas tentativa e erro por
parte do utilizador No entanto em anos recentes tem existido um avanccedilo consideraacutevel nesta aacuterea
tentado conceder ao utilizador maior controlo sobre os meacutetodos de geraccedilatildeo procedimental com
abordagens como Sketch-based editores visuais e Modelaccedilatildeo Procedimental Invertida
211 Teacutecnicas Sketch-based
Esta abordagem tenta aproximar o tipo de interaccedilatildeo com que os principais utilizadores de
meacutetodos de Modelaccedilatildeo Procedimental estatildeo familiarizados Noccedilotildees como Brushes e Sketches satildeo
alguns dos conceitos mais populares entre designers profissionais
5
Estado da Arte e Trabalhos Relacionados
2111 Terrenos
De Carpentier et al [dCB09] propuseram um meacutetodo de ediccedilatildeo de terrenos no qual eacute dada ao
utilizador a possibilidade de alterar o heightfield atraveacutes de procedural brushes tentando combinar
a interaccedilatildeo manual localizada com a modificaccedilatildeo da parametrizaccedilatildeo por completo de heightfields
Esta abordagem eacute capaz de produzir alteraccedilotildees a tempo real graccedilas agrave respetiva implementaccedilatildeo
com shaders
Smelik et al [STdKB10] seguindo a respetiva proposta de modelaccedilatildeo de mundos virtuais
[STdKB08] propotildeem a utilizaccedilatildeo da abordagem Procedural sketching e demonstram-na num
protoacutetipo intitulado de SketchaWorld Esta abordagem eacute dividida em dois principais modos de
interaccedilatildeo (Figura 21) Landscape Mode e Feature Mode
Figura 21 Procedural sketching of virtual worlds por Smelik et al [STdKB10]
No primeiro o utilizador interage com uma vista top-down do terreno divido em grelha e eacute
capaz de definir a informaccedilatildeo geoloacutegica de cada ceacutelula atraveacutes do uso de Brushes Em Feature
Mode o utilizador manipula pontos de controlo correspondendo a vetores ou poliacutegonos que deli-
mitam a localizaccedilatildeo de cidades rios e vegetaccedilatildeo A ferramenta fornece feedback da construccedilatildeo do
terreno a um ritmo consideraacutevel para uma interaccedilatildeo fluida Esta tambeacutem dispotildee de funcionalida-
des como undo e redo para uma melhorar a interaccedilatildeo entre o utilizador e a ferramenta permitindo
assim a introduccedilatildeo de alteraccedilotildees e caso estas natildeo sejam desejadas pelo utilizador estas podem
ser desfeitas rapidamente Gain et al [GMSe09] propotildeem uma soluccedilatildeo que permite ao utilizador
esboccedilar as silhuetas e limites de corpos montanhosos a serem gerados
6
Estado da Arte e Trabalhos Relacionados
2112 Estradas
Num esforccedilo de melhorar a interaccedilatildeo com path layouts Singh et al [SM08] desenvolveram a
ferramenta Drive que permite a conceptualizaccedilatildeo de redes rodoviaacuterias tridimensionais por meio
de esboccedilos que satildeo posteriormente aproximados a clotoacuteides (Curvas em que o raio varia line-
armente) Com esta abordagem eacute possiacutevel produzir itineraacuterios em que as transiccedilotildees entre raios
de curvatura satildeo lineares tornando-os assim adequados para a conduccedilatildeo A ferramenta tambeacutem
introduz Terrain sensitive sketching que por meios automaacuteticos coloca sinalizaccedilatildeo no percurso e
vegetaccedilatildeo nas redondezas
2113 Vegetaccedilatildeo
Figura 22 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et al[IOI06b IOI06a]
O trabalho de Ijiri et al [IOI06b IOI06a] apresenta uma teacutecnica que atraveacutes de traccedilados defi-
nidos pelo utilizador (Figura 22) permite a manipulaccedilatildeo da direccedilatildeo de crescimento de vegetaccedilatildeo
produzida por L-Systems uma abordagem jaacute muito estudada para a criaccedilatildeo de vegetaccedilatildeo pro-
posta por Lindenmayer [Lin68] como um tipo de gramaacutetica formal capaz de representar padrotildees
e geometria fractal existente na vegetaccedilatildeo Em 1988 foi proposto por Prusinkiewicz [PLH88] a
utilizaccedilatildeo de L-systems para a modelaccedilatildeo de vegetaccedilatildeo Ao longo das ultimas deacutecadas tecircm sido
realizados avanccedilos consideraacuteveis na produccedilatildeo de vegetaccedilatildeo realiacutestica [WP95] e a respetiva inte-
raccedilatildeo com o seu meio ambiente [MP96 Pru00] tentado assim produzir vegetaccedilatildeo que melhor
simule o comportamento fiacutesico e bioloacutegico de vegetaccedilatildeo real
Mais recentemente o trabalho de Palubicky et al [PHL+09] foi expandido e transportado
para uma aplicaccedilatildeo para dispositivos iPad em que o modelador tem um controlo fino sobre o
crescimento de uma aacutervore Utilizando o conceito de tree self-organization Longay et al criaram
7
Estado da Arte e Trabalhos Relacionados
a ferramenta TreeSketch 23 que estimula a competiccedilatildeo entre os ramos de uma aacutervore por espaccedilo
e luz dentro dos paracircmetros e inputs visuais dados pelo utilizador [LRBP12]
Figura 23 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch
212 Editores Visuais
Numa tentativa de melhorar a interaccedilatildeo com modelaccedilatildeo procedimental baseada em gramaacuteticas
[WWSR03 MWH+06] Lipp et al propuseram uma abordagem que permite a manipulaccedilatildeo direta
do resultado produzido por uma gramaacutetica O utilizador pode manipular diretamente no objeto as
respetivas dimensotildees e configuraccedilotildees [LWW08]
Mais recentemente Krecklau et al [KK12] introduziram uma abordagem que permite a ge-
raccedilatildeo de cenas a partir de primitivas de alto niacutevel e a correspondente manipulaccedilatildeo por interaccedilatildeo
direta na cena consequentemente permitindo a utilizadores menos experientes a utilizaccedilatildeo de
gramaacuteticas procedimentais complexas sem a necessidade de interaccedilatildeo textual com as mesmas
2121 Visual Node Based
Editores Visual Node Based satildeo utilizados em muitas aplicaccedilotildees comercias como meio de
dar ao utilizador feedback visual do fluxo de informaccedilatildeo Encontra-se em editores de shaders
[Hol15 Aut15b] editores de animaccedilotildees [Tec15] e em editores de texturas [Cod15] A vasta uti-
lizaccedilatildeo da teacutecnica na aacuterea de produccedilatildeo de conteuacutedo 3D por utilizadores com pouca experiecircncia
de programaccedilatildeo levou a que investigadores a utilizassem para a especificaccedilatildeo de gramaacuteticas de
produccedilatildeo
Nesse contexto Patow [Pat12] desenvolveu uma soluccedilatildeo para a construccedilatildeo e manipulaccedilatildeo de
gramaacuteticas por meio de um editor visual onde noacutes que representam operaccedilotildees geomeacutetricas dos
correspondentes antecessores transmitem o resultado aos noacutes sucessores Na mesma publica-
ccedilatildeo Patow realccedila a importacircncia que esta abordagem acarreta para a modelaccedilatildeo procedimental de
edifiacutecios e admite que existe ainda muito potencial por explorar
8
Estado da Arte e Trabalhos Relacionados
Mais recentemente o trabalho de Silva et al [SMBC13] apresenta uma metodologia de edi-
ccedilatildeo em que grafos podem ser encapsulados em noacutes designados Component capazes de representar
construccedilotildees complexas Os noacutes podem ser facilmente introduzidos noutros grafos e editados por
meio de filtros de fluxo colocados nas arestas ou por restriccedilotildees que auxiliam a especificar a utili-
zaccedilatildeo dos noacutes (Figura 24)
Figura 24 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13]
213 Modelaccedilatildeo Procedimental Invertida
Inverse PM eacute uma teacutecnica em que um dado modelo de entrada eacute aproximado a uma represen-
taccedilatildeo procedimental
Aliaga et al [ARB07] apresenta a reconstruccedilatildeo de edifiacutecios por meio de fotografias Nesta
abordagem o utilizador define os limites das fachadas do edifiacutecio criando uma representaccedilatildeo
minimalista De seguida eacute automaticamente aproximada uma gramaacutetica que melhor representa
o edifiacutecio em questatildeo Com os trabalhos de Šrsquotava et al [ŠBM+10] na parametrizaccedilatildeo de arte
vetorial 2D e de Mitra et al [MGP06] em encontrar simetrias em objetos tridimensionais Bokeloh
et al [BWS10] aplica estes conceitos para a descoberta de simetrias nos objetos e a consequente
aproximaccedilatildeo de gramaacuteticas que definam o objeto em questatildeo
As abordagens atuais focam-se em Modelaccedilatildeo invertida de ambientes urbanos no entanto
Vanegas et al [VGDA+12] demonstram uma metodologia de aproximaccedilatildeo de gramaacuteticas capazes
de representar para aleacutem de edifiacutecios sistemas complexos de vegetaccedilatildeo aproximados a um objeto
jaacute existente
9
Estado da Arte e Trabalhos Relacionados
22 Modelaccedilatildeo 3D Manual
Para a produccedilatildeo de objetos tridimensionais os modeladores utilizam ferramentas dedicadas
que lhes datildeo um controlo total sobre o modelo a ser construiacutedo Estes variam em metaacuteforas de
interface e em puacuteblico alvo Nesta secccedilatildeo vatildeo ser abordadas as teacutecnicas de modelaccedilatildeo atualmente
utilizadas por estas ferramentas e seratildeo listadas as ferramentas existentes no mercado e as respeti-
vas funcionalidades principais
221 Teacutecnicas de Modelaccedilatildeo Manual
2211 Polygon Modelling
Polygon Modelling eacute uma abordagem para a representaccedilatildeo de superfiacutecies tridimensionais utili-
zando poliacutegonos estes satildeo representados por veacutertices e arestas e em grupos formam uma Polygon
Mesh que pode ser armazenada de muacuteltiplas formas [TM06 Bau72 Smi06] Eacute possiacutevel criar ma-
lhas veacutertice a veacutertice manualmente No entanto eacute comum a respetiva manipulaccedilatildeo em software
graacutefico concedendo aos modeladores ferramentas interativas como Blender Autodesk Maya e 3D
Studio Max
Figura 25 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14]
Uma das abordagens mais comuns eacute denominada Box Modelling na qual uma forma geomeacute-
trica considerada uma primitiva (ie cubo esfera cilindro) eacute esculpida iterativamente por pas-
sos de subdivisatildeo do objeto e subsequente manipulaccedilatildeo da geometria ateacute se obter o objeto final
[Jon02 sub14] A figura 25 demonstra da teacutecnica Box Modelling para a modelaccedilatildeo de uma face
Esta abordagem pode ser considerada uma abordagem Subtrativa pois eacute atraveacutes da reduccedilatildeo de um
objeto base que eacute obtido o objeto desejado
10
Estado da Arte e Trabalhos Relacionados
O polygon modelling caracteriza-se pelo controlo direto sobre a colocaccedilatildeo de cada veacutertice de
uma superfiacutecie permitindo dessa forma um controlo fino e preciso sobre o resultado a produzir
2212 NURBS
NURBS ou Non-uniform rational B-spline eacute uma generalizaccedilatildeo de B-Splines e Curvas de Beacute-
zier [KR79 Cab92] um modelo matemaacutetico usado para representar curvas e superfiacutecies com
grande precisatildeo e flexibilidade (Figura 26) Eacute principalmente utilizado em aacutereas da computaccedilatildeo
graacutefica (CAD CAM CAE) onde a precisatildeo dos modelos obtidos eacute muito importante Inicialmente
estudada por Matemaacuteticos como I J Schoenberg [Cob84] foi aplicada em sistemas CAD para a
modelaccedilatildeo na induacutestria Automoacutevel [Beacute83 Beacutez81 Bez68]
Figura 26 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modeloNURBS
2213 Digital Sculpting
Digital Sculpting eacute a adaptaccedilatildeo de teacutecnicas utilizadas para moldar materiais como o barro agrave
modelaccedilatildeo 3D Estas ferramentas permitem ao modelador empurrar puxar polir vincare
adicionar ou remover volume Perry et al [PF01] introduziram Kizamu um dos primeiros passos
na aacuterea do Digital Sculpting Os modelos satildeo representados no que eacute chamado de Adaptively Sam-
pled Distance Fields (ADF) [FPRJ00] que permite representar dados volumeacutetricos que tornam o
processo de Digital Sculpting possiacutevel
222 Ferramentas de Modelaccedilatildeo 3D
2221 Blender
O Blender [ble15a] eacute uma ferramenta profissional de modelaccedilatildeo de coacutedigo aberto desen-
volvida pela Blender Foundation Suporta uma grande variedade de primitivas geomeacutetricas in-
11
Estado da Arte e Trabalhos Relacionados
Figura 27 Interface da ferramenta Blender
cluiacutendo Polygon Meshes curvas de Bezier superfiacutecies NURBS Metaballs e Digital Sculpting
Esta destaca-se por ser gratuita e pela facilidade de criar extensotildees [ble15b] usando a API Python
existente [ble15c] que permite adicionar novas funcionalidades agrave ferramenta
2222 Autodesk Maya
Figura 28 Interface da ferramenta Autodesk Maya
O Autodesk Maya [Aut15b] eacute uma ferramenta de produccedilatildeo de conteuacutedo 3D utilizada nas induacutes-
trias do cinema televisatildeo videojogos e arquitetura Eacute de coacutedigo fechado e a respetiva utilizaccedilatildeo
requer que o utilizador possua uma licenccedila Tal como o Blender o Maya daacute aos modeladores
ferramentas para estes criarem objetos de uma forma interativa 28 Apesar de ser uma ferramenta
versaacutetil e capaz de satisfazer as necessidades de todas induacutestrias acima referidas o Autodesk
Maya tende a ser mais utilizado pela induacutestria do Cinema devido agrave vasta customizaccedilatildeo possiacutevel de
aspetos importantes para esta induacutestria como Animaccedilatildeo e VFX [Aut15c]
12
Estado da Arte e Trabalhos Relacionados
2223 Autodesk 3D Studio Max
O 3D Studio Max [Aut15a] eacute outra ferramenta da Autodesk em muitos aspetos semelhante
ao Maya No entanto o 3DS Max estaacute apenas disponiacutevel para maacutequinas de sistema operativo
Windows e sempre foi mais utilizado pela induacutestria dos videojogos para a criaccedilatildeo de modelos 3D
Tal como o Autodesk Maya este dispotildee de poderosos motores de renderizaccedilatildeo Ray Tracing
2224 Zbrush
O Zbrush [Pix15] eacute uma ferramenta de modelaccedilatildeo 3D baseada nos conceitos de Digital Mo-
delling Daacute ao artista muacuteltiplas Brushes que permitem manipular o objeto a ser definido com
paradigmas transportados de outras aacutereas artiacutesticas Pode tornar mais acessiacutevel para um utilizador
pouco experiente com alguns paradigmas da Computaccedilatildeo Graacutefica a modelaccedilatildeo de objetos com
consideraacutevel detalhe e liberdade artiacutestica [Spe11]
23 Sumaacuterio
Apoacutes o levantamento do estado da arte eacute possiacutevel constatar que as ferramentas de modelaccedilatildeo
manual satildeo a escolha de eleiccedilatildeo para contextos em que o modelador deseja o maior niacutevel controlo
possiacutevel sobre o objeto a ser produzido No entanto considerando ferramentas de modelaccedilatildeo
procedimental tem existido um esforccedilo por parte desta comunidade para tornar a correspondente
experiecircncia de utilizaccedilatildeo mais acessiacutevel a utilizadores pouco familiarizados com o funcionamento
do mesmo Por enquanto a utilizaccedilatildeo deste tipo de ferramentas ainda requer que o conteuacutedo
seja criado em ferramentas dedicadas completamente separadas das ferramentas tradicionais (ie
Maya Blender) essenciais para o trabalho artiacutestico levando a quebras no fluxo de trabalho
13
Estado da Arte e Trabalhos Relacionados
14
Capiacutetulo 3
Metodologia
Com os desenvolvimentos atuais na aacuterea de modelaccedilatildeo procedimental apresentados no capiacute-
tulo 2 eacute possiacutevel verificar que as soluccedilotildees de MP existentes permitem produzir variados tipos de
conteuacutedo tais como terrenos vegetaccedilatildeo edifiacutecios estradas e cidades por outro lado as respeti-
vas integraccedilotildees em ambientes de modelaccedilatildeo manual satildeo algo limitadas ou apenas disponiacuteveis em
ferramentas externas especializadas num uacutenico tipo de conteuacutedo
Da mesma forma como verificado em 21 foram efetuadas vaacuterias tentativas pela comunidade
envolvida em geraccedilatildeo procedimental no sentido a melhorar a interaccedilatildeo com ferramentas dedica-
das agrave geraccedilatildeo procedimental no entanto existe ainda uma grande margem para avanccedilo de uma
integraccedilatildeo geneacuterica destes processos numa ferramenta de modelaccedilatildeo manual Devido agrave falta de
soluccedilotildees que se integrem de forma transparente e acessiacutevel em ambientes de modelaccedilatildeo manual
pretende-se apresentar uma soluccedilatildeo com o objetivo de interligar as duas abordagens neste capiacute-
tulo Inicialmente seraacute apresentada em pormenor a arquitetura da soluccedilatildeo de seguida o protocolo
de comunicaccedilatildeo entre os dois ambientes de modelaccedilatildeo e finalmente seraacute proposto um meacutetodo de
trabalho no qual seraacute descrita a interaccedilatildeo ideal entre o modelador e a soluccedilatildeo proposta
31 Meacutetodo de Trabalho
Numa interaccedilatildeo ideal o modelador teria controlo absoluto sobre os meacutetodos de geraccedilatildeo proce-
dimental e seria possiacutevel modelar procedimentalmente sobre alteraccedilotildees manuais realizadas sobre
o objeto No entanto nem sempre eacute desejado esse niacutevel de controlo e interligaccedilatildeo entre as aborda-
gens Imaginando a modelaccedilatildeo de um edifiacutecio este eacute construiacutedo segundo meacutetodos procedimentais
e recebe como entrada um poliacutegono que delimita a fundaccedilatildeo assim como paracircmetros numeacutericos e
booleanos que definem a geometria resultante Depois de modelado procedimentalmente o objeto
eacute adicionado ao ambiente de modelaccedilatildeo manual onde o modelador pode realizar alteraccedilotildees em
detalhes na geometria ou mesmo alteraccedilotildees profundas na geometria do mesmo
15
Metodologia
Considerando uma situaccedilatildeo em que o modelador realizou alteraccedilotildees profundas na geometria
produzida como por exemplo a reparticcedilatildeo de uma das fachadas do edifiacutecio em trecircs fachadas
Assim que realizadas estas alteraccedilotildees o utilizador pretende alterar a altura do edifiacutecio alterando o
paracircmetro correspondente e requisitando uma atualizaccedilatildeo Para ser possiacutevel manter as alteraccedilotildees
realizadas manualmente e em simultacircneo respeitar as regras definidas pela geraccedilatildeo procedimen-
tal seria necessaacuterio converter estas alteraccedilotildees em regras possiacuteveis de definir no escopo do ambiente
de geraccedilatildeo procedimental
De qualquer das formas as alteraccedilotildees realizadas no ponto anterior podem simplesmente natildeo
fazer sentido apoacutes a aplicaccedilatildeo sobre o objeto que foi reproduzido seguindo as regras definias
por um procedimento Devido a esta limitaccedilatildeo eacute assumido que assim que o utilizador requisita
uma nova execuccedilatildeo de um procedimento o qual natildeo tem problemas em descartar as alteraccedilotildees
executadas manualmente sobre o objeto em questatildeo
Tendo em consideraccedilatildeo esta limitaccedilatildeo eacute possiacutevel estruturar um fluxo de trabalho que melhor
explore as vantagens e limitaccedilotildees de ambas as abordagens de geraccedilatildeo de conteuacutedo tridimensional
O utilizador tem uma panoacuteplia de conteuacutedos procedimentais ao seu dispor que podem ser definidas
via paracircmetros numeacutericos e geomeacutetricos O conteuacutedo eacute adicionado ao ambiente de modelaccedilatildeo ma-
nual e os paracircmetros podem ainda ser editados alterados ao custo de que as modificaccedilotildees manuais
realizadas sobre o objeto sejam descartadas
32 Metodologias de Interaccedilatildeo com o Utilizador
Em relaccedilatildeo agrave interaccedilatildeo com o utilizador foram estudadas trecircs abordagens para a interaccedilatildeo com
meacutetodos de geraccedilatildeo procedimental em ambiente de modelaccedilatildeo manual
321 Modificadores
O conceito de modificadores eacute jaacute utilizado em ambientes de modelaccedilatildeo manual eg no Blen-
der [Bap14 Ble15e] onde satildeo utilizados para realizar operaccedilotildees sobre objetos na cena sem destruir
a geometria subjacente apenas modificam a forma como os objetos satildeo percecionados pelo motor
de renderizaccedilatildeo Esta abordagem eacute uacutetil em situaccedilotildees onde o procedimento a ser executado en-
volve modificaccedilotildees sobre uma geometria base como tal permitindo realizar muacuteltiplas alteraccedilotildees
sobre um objeto podendo estas ser facilmente canceladas recuperando o objeto original No en-
tanto nem todos os recursos de geraccedilatildeo procedimental incidem sobre modificaccedilatildeo de geometria
Os meios de geraccedilatildeo procedimental em muitas situaccedilotildees produzem objetos e cenaacuterios uacutenicos e
independentes de qualquer geometria de entrada
322 Grafos
A abordagem de interaccedilatildeo via grafos eacute atualmente utilizada num ambiente de modelaccedilatildeo ma-
nual para a ediccedilatildeo de materiais [Ble15d] Tambeacutem chamada de Flow-Based Programming esta
16
Metodologia
abordagem permite apresentar ao utilizador os procedimentos como uma caixa negra com pos-
siacuteveis entradas e saiacutedas representadas como ligaccedilotildees de fluxo A correspondente utilizaccedilatildeo na
interaccedilatildeo com geraccedilatildeo procedimental pode permitir o encadeamento de muacuteltiplos procedimentos
No entanto a abordagem pode ser mais trabalhosa para o utilizador introduzindo um niacutevel de
interaccedilatildeo adicional para cada objeto introduzido na cena
323 Funccedilotildees
Esta abordagem disponibiliza ao utilizador cada recurso de geraccedilatildeo procedimental como uma
funccedilatildeo disponiacutevel a qualquer momento na interface da ferramenta de modelaccedilatildeo manual Aquando
da respetiva invocaccedilatildeo satildeo requisitados aos utilizadores os paracircmetros necessaacuterios agrave execuccedilatildeo
A abordagem em causa eacute potencialmente a mais faacutecil de adotar por parte dos utilizadores de
ferramentas de modelaccedilatildeo manual Devido agrave simplicidade na interaccedilatildeo assim como a reduzida
necessidade de tempo e recursos para a implementaccedilatildeo esta foi a abordagem de interaccedilatildeo utilizada
na soluccedilatildeo desenvolvida
33 Arquitetura da Soluccedilatildeo
Para abordar este problema eacute proposta a utilizaccedilatildeo de duas aplicaccedilotildees jaacute presentes no mer-
cado Uma aplicaccedilatildeo dedicada agrave modelaccedilatildeo procedimental e uma aplicaccedilatildeo de modelaccedilatildeo manual
Foi escolhida esta abordagem na medida em que eacute possiacutevel utilizar duas aplicaccedilotildees jaacute existentes
sendo possiacutevel dessa forma aproveitar os pontos fortes de cada soluccedilatildeo com o intuito de otimi-
zar o processo de criaccedilatildeo de novos cenaacuterios e conteuacutedo tridimensional Esta abordagem pode ser
representada como uma soluccedilatildeo estruturada numa arquitetura Cliente-Servidor em que a aplica-
ccedilatildeo de geraccedilatildeo procedimental eacute capaz de fornecer serviccedilos de geraccedilatildeo de conteuacutedo a um ou mais
clientes de modelaccedilatildeo Esta abordagem interliga as duas aplicaccedilotildees atraveacutes de um protocolo de
comunicaccedilatildeo Este permite ao utilizador da ferramenta de modelaccedilatildeo manual requisitar a produ-
ccedilatildeo de conteuacutedo seguindo os valores impostos pelo utilizador nos paracircmetros do procedimento
requisitado O protocolo eacute descrito em maior detalhe na secccedilatildeo 34
331 Vantagens
Faacutecil integraccedilatildeo em diferentes plataformas Devido agrave arquitetura ser baseada na comunicaccedilatildeo
entre duas aplicaccedilotildees por um protocolo de comunicaccedilatildeo geneacuterico eacute com alguma facili-
dade que se realiza a interligaccedilatildeo com diferentes soluccedilotildees de geraccedilatildeo procedimental ou de
modelaccedilatildeo manual Sendo assim possiacutevel a expansatildeo para novos ambientes de modelaccedilatildeo
manual ou mesmo introduzir novas soluccedilotildees de geraccedilatildeo procedimental
Escalabilidade A arquitetura proposta poderaacute permitir que esta seja implementada de modo a que
um servidor central de geraccedilatildeo procedimental sirva por exemplo num ambiente empresa-
rial como um repositoacuterio de recursos de geraccedilatildeo de conteuacutedos desta forma permitindo
17
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Capiacutetulo 1
Introduccedilatildeo
A criaccedilatildeo de ambientes virtuais eacute um toacutepico muito relevante em computaccedilatildeo graacutefica e reali-
dade virtual tendo aplicaccedilotildees na induacutestria do entretenimento para a produccedilatildeo filmes e videojogos
entre outros Na induacutestria do cinema estes ambientes virtuais satildeo utilizados para criar imagens
impossiacuteveis de reproduzir atraveacutes de meios praacuteticos Na induacutestria dos videojogos cada vez mais
encontramos jogos em ambientes de maior dimensatildeo e com um elevado niacutevel de detalhe (Figura
11)
Em modelaccedilatildeo a abordagem tradicional eacute a de Modelaccedilatildeo Manual que permite ao artista
controlo completo e fino do objeto a ser criado No que toca agrave criaccedilatildeo de cenaacuterios de elevadas
dimensotildees como montanhas cidades estradas e vegetaccedilatildeo a abordagem tradicional torna-se cada
vez menos viaacutevel A introduccedilatildeo de meacutetodos procedimentais na geraccedilatildeo destes conteuacutedos permite
produzir resultados de alta qualidade com alguma facilidade produzindo cenaacuterios numa fraccedilatildeo do
tempo e do custo correspondentes agrave respetiva produccedilatildeo por meio de modelaccedilatildeo manual
Apesar do grande impacto positivo que esta abordagem trouxe para a induacutestria de um ponto
de vista artiacutestico nem sempre o resultado eacute o mais desejado desta forma podendo necessitar
da introduccedilatildeo de pormenores e alteraccedilotildees finas agrave respetiva geometria para produzir um resultado
uacutenico e mais proacuteximo da visatildeo artiacutestica do criador Para tal tecircm sido desenvolvidas teacutecnicas
para uma interaccedilatildeo mais intuitiva com a modelaccedilatildeo procedimental tentado dar ao modelador um
melhor controlo sobre os meacutetodos automatizados que lhes estatildeo subjacentes natildeo possuindo ainda
o niacutevel de controlo fino que uma ferramenta de modelaccedilatildeo manual pode oferecer
1
Introduccedilatildeo
Figura 11 Captura de ecratilde do viacutedeo jogo Crysis 3 da Electronic Arts
11 Contexto
Esta dissertaccedilatildeo insere-se na aacuterea da computaccedilatildeo graacutefica mais especificamente na aacuterea da mo-
delaccedilatildeo tridimensional geraccedilatildeo procedimental de modelos 3D e interaccedilatildeo com os mesmos Estas
aacutereas intersectam-se em rumo a uma melhor interaccedilatildeo com recursos de geraccedilatildeo procedimental
num ambiente de modelaccedilatildeo manual
Esta dissertaccedilatildeo foi realizada na Faculdade de Engenharia da Universidade do Porto no Labo-
ratoacuterio de IampD de Computaccedilatildeo Graacutefica Interaccedilatildeo e Jogos
12 Motivaccedilatildeo e Problema
Os avanccedilos no desenvolvimento de hardware e software resultam numa necessidade de con-
teuacutedo tridimensional maior e mais detalhado criando uma maior carga nas equipas que os pro-
duzem Como mencionado previamente a utilizaccedilatildeo de modelaccedilatildeo procedimental para a criaccedilatildeo
raacutepida de ambientes tridimensionais eacute altamente apelativa para a induacutestria permitindo poupar
tempo e dinheiro comparativamente a uma abordagem manual
No entanto esta abordagem dificulta ao modelador a introduccedilatildeo de pormenores pois os meacute-
todos procedimentais satildeo definidos tipicamente por um conjunto de regras e paracircmetros de uma
forma natildeo intuitiva ou de controlo limitado A simples modificaccedilatildeo de um paracircmetro pode criar
uma reaccedilatildeo em cadeia de modificaccedilotildees que alteram por completo o modelo gerado Eacute assim ape-
lativo encontrar um meacutetodo que melhor aproveite as vantagens das duas abordagens permitindo
aos modeladores uma produccedilatildeo de conteuacutedo tridimensional mais raacutepida e controlada
2
Introduccedilatildeo
13 Objetivos
O objetivo principal deste trabalho eacute desenvolver uma soluccedilatildeo que melhor aproveite as vanta-
gens das duas principais abordagens agrave modelaccedilatildeo 3D para tal eacute possiacutevel identificar os seguintes
objetivos especiacuteficos
bull Investigar o estado da arte da aacuterea da modelaccedilatildeo procedimental e modelaccedilatildeo manual em
particular os avanccedilos realizados na interaccedilatildeo com os meacutetodos utilizados em modelaccedilatildeo pro-
cedimental
bull Estudar as metodologias possiacuteveis para abordar o problema
bull Desenvolver uma soluccedilatildeo utilizando uma abordagem possiacutevel com os recursos disponiacuteveis
bull Testar a soluccedilatildeo com utilizadores proficientes em modelaccedilatildeo de conteuacutedo 3D
14 Estrutura do documento
Esta dissertaccedilatildeo encontra-se dividida em 6 capiacutetulos anexos e referecircncias O capiacutetulo pre-
sente consiste numa descriccedilatildeo do problema da motivaccedilatildeo e dos objetivos propostos para a cor-
respondente realizaccedilatildeo No capiacutetulo 2 eacute realizado um levantamento do estado da arte nas aacutereas
da modelaccedilatildeo procedimental e modelaccedilatildeo manual em especial os avanccedilos realizados na interaccedilatildeo
com os meacutetodos utilizados em modelaccedilatildeo procedimental No capiacutetulo 3 satildeo discutidas as meto-
dologias estudadas para a melhor interaccedilatildeo entre as duas abordagens agrave modelaccedilatildeo sendo tambeacutem
apresentada com maior detalhe a metodologia a ser utilizada
No capiacutetulo 4 satildeo descritos alguns detalhes de implementaccedilatildeo da soluccedilatildeo desenvolvida base-
ada na metodologia discutida no capiacutetulo 3
No capiacutetulo 5 eacute apresentada a metodologia de teste utilizada para avaliar a soluccedilatildeo desenvol-
vida sendo tambeacutem apresentados os resultados obtidos
No capiacutetulo 6 o final da dissertaccedilatildeo satildeo resumidas algumas constataccedilotildees e conclusotildees rea-
lizadas sobre esta dissertaccedilatildeo Eacute efetuada tambeacutem uma listagem de alguns pontos para potencial
trabalho futuro
3
Introduccedilatildeo
4
Capiacutetulo 2
Estado da Arte e TrabalhosRelacionados
Neste capiacutetulo seraacute realizada uma revisatildeo bibliograacutefica que visa apresentar todos os avanccedilos
realizados nas aacutereas da interaccedilatildeo com os meacutetodos de geraccedilatildeo procedimental Seratildeo apresentados
os tipos de conteuacutedo passiacuteveis de serem produzidos por meio destes meacutetodos bem como as teacutec-
nicas utilizadas para a respetiva interaccedilatildeo e geraccedilatildeo Iratildeo tambeacutem ser apresentadas as abordagens
existentes para uma modelaccedilatildeo manual e as ferramentas existentes no mercado
21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundosvirtuais
O paradigma de interaccedilatildeo com meacutetodos de geraccedilatildeo procedimental eacute tradicionalmente funci-
onal Cada procedimento pode ser considerado uma caixa negra de operaccedilotildees que dependendo
de certos valores de entrada produz um ou mais resultados A interaccedilatildeo com estes nem sempre
eacute a mais intuitiva pois para atingir o resultado desejado envolve em repetidas tentativa e erro por
parte do utilizador No entanto em anos recentes tem existido um avanccedilo consideraacutevel nesta aacuterea
tentado conceder ao utilizador maior controlo sobre os meacutetodos de geraccedilatildeo procedimental com
abordagens como Sketch-based editores visuais e Modelaccedilatildeo Procedimental Invertida
211 Teacutecnicas Sketch-based
Esta abordagem tenta aproximar o tipo de interaccedilatildeo com que os principais utilizadores de
meacutetodos de Modelaccedilatildeo Procedimental estatildeo familiarizados Noccedilotildees como Brushes e Sketches satildeo
alguns dos conceitos mais populares entre designers profissionais
5
Estado da Arte e Trabalhos Relacionados
2111 Terrenos
De Carpentier et al [dCB09] propuseram um meacutetodo de ediccedilatildeo de terrenos no qual eacute dada ao
utilizador a possibilidade de alterar o heightfield atraveacutes de procedural brushes tentando combinar
a interaccedilatildeo manual localizada com a modificaccedilatildeo da parametrizaccedilatildeo por completo de heightfields
Esta abordagem eacute capaz de produzir alteraccedilotildees a tempo real graccedilas agrave respetiva implementaccedilatildeo
com shaders
Smelik et al [STdKB10] seguindo a respetiva proposta de modelaccedilatildeo de mundos virtuais
[STdKB08] propotildeem a utilizaccedilatildeo da abordagem Procedural sketching e demonstram-na num
protoacutetipo intitulado de SketchaWorld Esta abordagem eacute dividida em dois principais modos de
interaccedilatildeo (Figura 21) Landscape Mode e Feature Mode
Figura 21 Procedural sketching of virtual worlds por Smelik et al [STdKB10]
No primeiro o utilizador interage com uma vista top-down do terreno divido em grelha e eacute
capaz de definir a informaccedilatildeo geoloacutegica de cada ceacutelula atraveacutes do uso de Brushes Em Feature
Mode o utilizador manipula pontos de controlo correspondendo a vetores ou poliacutegonos que deli-
mitam a localizaccedilatildeo de cidades rios e vegetaccedilatildeo A ferramenta fornece feedback da construccedilatildeo do
terreno a um ritmo consideraacutevel para uma interaccedilatildeo fluida Esta tambeacutem dispotildee de funcionalida-
des como undo e redo para uma melhorar a interaccedilatildeo entre o utilizador e a ferramenta permitindo
assim a introduccedilatildeo de alteraccedilotildees e caso estas natildeo sejam desejadas pelo utilizador estas podem
ser desfeitas rapidamente Gain et al [GMSe09] propotildeem uma soluccedilatildeo que permite ao utilizador
esboccedilar as silhuetas e limites de corpos montanhosos a serem gerados
6
Estado da Arte e Trabalhos Relacionados
2112 Estradas
Num esforccedilo de melhorar a interaccedilatildeo com path layouts Singh et al [SM08] desenvolveram a
ferramenta Drive que permite a conceptualizaccedilatildeo de redes rodoviaacuterias tridimensionais por meio
de esboccedilos que satildeo posteriormente aproximados a clotoacuteides (Curvas em que o raio varia line-
armente) Com esta abordagem eacute possiacutevel produzir itineraacuterios em que as transiccedilotildees entre raios
de curvatura satildeo lineares tornando-os assim adequados para a conduccedilatildeo A ferramenta tambeacutem
introduz Terrain sensitive sketching que por meios automaacuteticos coloca sinalizaccedilatildeo no percurso e
vegetaccedilatildeo nas redondezas
2113 Vegetaccedilatildeo
Figura 22 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et al[IOI06b IOI06a]
O trabalho de Ijiri et al [IOI06b IOI06a] apresenta uma teacutecnica que atraveacutes de traccedilados defi-
nidos pelo utilizador (Figura 22) permite a manipulaccedilatildeo da direccedilatildeo de crescimento de vegetaccedilatildeo
produzida por L-Systems uma abordagem jaacute muito estudada para a criaccedilatildeo de vegetaccedilatildeo pro-
posta por Lindenmayer [Lin68] como um tipo de gramaacutetica formal capaz de representar padrotildees
e geometria fractal existente na vegetaccedilatildeo Em 1988 foi proposto por Prusinkiewicz [PLH88] a
utilizaccedilatildeo de L-systems para a modelaccedilatildeo de vegetaccedilatildeo Ao longo das ultimas deacutecadas tecircm sido
realizados avanccedilos consideraacuteveis na produccedilatildeo de vegetaccedilatildeo realiacutestica [WP95] e a respetiva inte-
raccedilatildeo com o seu meio ambiente [MP96 Pru00] tentado assim produzir vegetaccedilatildeo que melhor
simule o comportamento fiacutesico e bioloacutegico de vegetaccedilatildeo real
Mais recentemente o trabalho de Palubicky et al [PHL+09] foi expandido e transportado
para uma aplicaccedilatildeo para dispositivos iPad em que o modelador tem um controlo fino sobre o
crescimento de uma aacutervore Utilizando o conceito de tree self-organization Longay et al criaram
7
Estado da Arte e Trabalhos Relacionados
a ferramenta TreeSketch 23 que estimula a competiccedilatildeo entre os ramos de uma aacutervore por espaccedilo
e luz dentro dos paracircmetros e inputs visuais dados pelo utilizador [LRBP12]
Figura 23 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch
212 Editores Visuais
Numa tentativa de melhorar a interaccedilatildeo com modelaccedilatildeo procedimental baseada em gramaacuteticas
[WWSR03 MWH+06] Lipp et al propuseram uma abordagem que permite a manipulaccedilatildeo direta
do resultado produzido por uma gramaacutetica O utilizador pode manipular diretamente no objeto as
respetivas dimensotildees e configuraccedilotildees [LWW08]
Mais recentemente Krecklau et al [KK12] introduziram uma abordagem que permite a ge-
raccedilatildeo de cenas a partir de primitivas de alto niacutevel e a correspondente manipulaccedilatildeo por interaccedilatildeo
direta na cena consequentemente permitindo a utilizadores menos experientes a utilizaccedilatildeo de
gramaacuteticas procedimentais complexas sem a necessidade de interaccedilatildeo textual com as mesmas
2121 Visual Node Based
Editores Visual Node Based satildeo utilizados em muitas aplicaccedilotildees comercias como meio de
dar ao utilizador feedback visual do fluxo de informaccedilatildeo Encontra-se em editores de shaders
[Hol15 Aut15b] editores de animaccedilotildees [Tec15] e em editores de texturas [Cod15] A vasta uti-
lizaccedilatildeo da teacutecnica na aacuterea de produccedilatildeo de conteuacutedo 3D por utilizadores com pouca experiecircncia
de programaccedilatildeo levou a que investigadores a utilizassem para a especificaccedilatildeo de gramaacuteticas de
produccedilatildeo
Nesse contexto Patow [Pat12] desenvolveu uma soluccedilatildeo para a construccedilatildeo e manipulaccedilatildeo de
gramaacuteticas por meio de um editor visual onde noacutes que representam operaccedilotildees geomeacutetricas dos
correspondentes antecessores transmitem o resultado aos noacutes sucessores Na mesma publica-
ccedilatildeo Patow realccedila a importacircncia que esta abordagem acarreta para a modelaccedilatildeo procedimental de
edifiacutecios e admite que existe ainda muito potencial por explorar
8
Estado da Arte e Trabalhos Relacionados
Mais recentemente o trabalho de Silva et al [SMBC13] apresenta uma metodologia de edi-
ccedilatildeo em que grafos podem ser encapsulados em noacutes designados Component capazes de representar
construccedilotildees complexas Os noacutes podem ser facilmente introduzidos noutros grafos e editados por
meio de filtros de fluxo colocados nas arestas ou por restriccedilotildees que auxiliam a especificar a utili-
zaccedilatildeo dos noacutes (Figura 24)
Figura 24 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13]
213 Modelaccedilatildeo Procedimental Invertida
Inverse PM eacute uma teacutecnica em que um dado modelo de entrada eacute aproximado a uma represen-
taccedilatildeo procedimental
Aliaga et al [ARB07] apresenta a reconstruccedilatildeo de edifiacutecios por meio de fotografias Nesta
abordagem o utilizador define os limites das fachadas do edifiacutecio criando uma representaccedilatildeo
minimalista De seguida eacute automaticamente aproximada uma gramaacutetica que melhor representa
o edifiacutecio em questatildeo Com os trabalhos de Šrsquotava et al [ŠBM+10] na parametrizaccedilatildeo de arte
vetorial 2D e de Mitra et al [MGP06] em encontrar simetrias em objetos tridimensionais Bokeloh
et al [BWS10] aplica estes conceitos para a descoberta de simetrias nos objetos e a consequente
aproximaccedilatildeo de gramaacuteticas que definam o objeto em questatildeo
As abordagens atuais focam-se em Modelaccedilatildeo invertida de ambientes urbanos no entanto
Vanegas et al [VGDA+12] demonstram uma metodologia de aproximaccedilatildeo de gramaacuteticas capazes
de representar para aleacutem de edifiacutecios sistemas complexos de vegetaccedilatildeo aproximados a um objeto
jaacute existente
9
Estado da Arte e Trabalhos Relacionados
22 Modelaccedilatildeo 3D Manual
Para a produccedilatildeo de objetos tridimensionais os modeladores utilizam ferramentas dedicadas
que lhes datildeo um controlo total sobre o modelo a ser construiacutedo Estes variam em metaacuteforas de
interface e em puacuteblico alvo Nesta secccedilatildeo vatildeo ser abordadas as teacutecnicas de modelaccedilatildeo atualmente
utilizadas por estas ferramentas e seratildeo listadas as ferramentas existentes no mercado e as respeti-
vas funcionalidades principais
221 Teacutecnicas de Modelaccedilatildeo Manual
2211 Polygon Modelling
Polygon Modelling eacute uma abordagem para a representaccedilatildeo de superfiacutecies tridimensionais utili-
zando poliacutegonos estes satildeo representados por veacutertices e arestas e em grupos formam uma Polygon
Mesh que pode ser armazenada de muacuteltiplas formas [TM06 Bau72 Smi06] Eacute possiacutevel criar ma-
lhas veacutertice a veacutertice manualmente No entanto eacute comum a respetiva manipulaccedilatildeo em software
graacutefico concedendo aos modeladores ferramentas interativas como Blender Autodesk Maya e 3D
Studio Max
Figura 25 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14]
Uma das abordagens mais comuns eacute denominada Box Modelling na qual uma forma geomeacute-
trica considerada uma primitiva (ie cubo esfera cilindro) eacute esculpida iterativamente por pas-
sos de subdivisatildeo do objeto e subsequente manipulaccedilatildeo da geometria ateacute se obter o objeto final
[Jon02 sub14] A figura 25 demonstra da teacutecnica Box Modelling para a modelaccedilatildeo de uma face
Esta abordagem pode ser considerada uma abordagem Subtrativa pois eacute atraveacutes da reduccedilatildeo de um
objeto base que eacute obtido o objeto desejado
10
Estado da Arte e Trabalhos Relacionados
O polygon modelling caracteriza-se pelo controlo direto sobre a colocaccedilatildeo de cada veacutertice de
uma superfiacutecie permitindo dessa forma um controlo fino e preciso sobre o resultado a produzir
2212 NURBS
NURBS ou Non-uniform rational B-spline eacute uma generalizaccedilatildeo de B-Splines e Curvas de Beacute-
zier [KR79 Cab92] um modelo matemaacutetico usado para representar curvas e superfiacutecies com
grande precisatildeo e flexibilidade (Figura 26) Eacute principalmente utilizado em aacutereas da computaccedilatildeo
graacutefica (CAD CAM CAE) onde a precisatildeo dos modelos obtidos eacute muito importante Inicialmente
estudada por Matemaacuteticos como I J Schoenberg [Cob84] foi aplicada em sistemas CAD para a
modelaccedilatildeo na induacutestria Automoacutevel [Beacute83 Beacutez81 Bez68]
Figura 26 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modeloNURBS
2213 Digital Sculpting
Digital Sculpting eacute a adaptaccedilatildeo de teacutecnicas utilizadas para moldar materiais como o barro agrave
modelaccedilatildeo 3D Estas ferramentas permitem ao modelador empurrar puxar polir vincare
adicionar ou remover volume Perry et al [PF01] introduziram Kizamu um dos primeiros passos
na aacuterea do Digital Sculpting Os modelos satildeo representados no que eacute chamado de Adaptively Sam-
pled Distance Fields (ADF) [FPRJ00] que permite representar dados volumeacutetricos que tornam o
processo de Digital Sculpting possiacutevel
222 Ferramentas de Modelaccedilatildeo 3D
2221 Blender
O Blender [ble15a] eacute uma ferramenta profissional de modelaccedilatildeo de coacutedigo aberto desen-
volvida pela Blender Foundation Suporta uma grande variedade de primitivas geomeacutetricas in-
11
Estado da Arte e Trabalhos Relacionados
Figura 27 Interface da ferramenta Blender
cluiacutendo Polygon Meshes curvas de Bezier superfiacutecies NURBS Metaballs e Digital Sculpting
Esta destaca-se por ser gratuita e pela facilidade de criar extensotildees [ble15b] usando a API Python
existente [ble15c] que permite adicionar novas funcionalidades agrave ferramenta
2222 Autodesk Maya
Figura 28 Interface da ferramenta Autodesk Maya
O Autodesk Maya [Aut15b] eacute uma ferramenta de produccedilatildeo de conteuacutedo 3D utilizada nas induacutes-
trias do cinema televisatildeo videojogos e arquitetura Eacute de coacutedigo fechado e a respetiva utilizaccedilatildeo
requer que o utilizador possua uma licenccedila Tal como o Blender o Maya daacute aos modeladores
ferramentas para estes criarem objetos de uma forma interativa 28 Apesar de ser uma ferramenta
versaacutetil e capaz de satisfazer as necessidades de todas induacutestrias acima referidas o Autodesk
Maya tende a ser mais utilizado pela induacutestria do Cinema devido agrave vasta customizaccedilatildeo possiacutevel de
aspetos importantes para esta induacutestria como Animaccedilatildeo e VFX [Aut15c]
12
Estado da Arte e Trabalhos Relacionados
2223 Autodesk 3D Studio Max
O 3D Studio Max [Aut15a] eacute outra ferramenta da Autodesk em muitos aspetos semelhante
ao Maya No entanto o 3DS Max estaacute apenas disponiacutevel para maacutequinas de sistema operativo
Windows e sempre foi mais utilizado pela induacutestria dos videojogos para a criaccedilatildeo de modelos 3D
Tal como o Autodesk Maya este dispotildee de poderosos motores de renderizaccedilatildeo Ray Tracing
2224 Zbrush
O Zbrush [Pix15] eacute uma ferramenta de modelaccedilatildeo 3D baseada nos conceitos de Digital Mo-
delling Daacute ao artista muacuteltiplas Brushes que permitem manipular o objeto a ser definido com
paradigmas transportados de outras aacutereas artiacutesticas Pode tornar mais acessiacutevel para um utilizador
pouco experiente com alguns paradigmas da Computaccedilatildeo Graacutefica a modelaccedilatildeo de objetos com
consideraacutevel detalhe e liberdade artiacutestica [Spe11]
23 Sumaacuterio
Apoacutes o levantamento do estado da arte eacute possiacutevel constatar que as ferramentas de modelaccedilatildeo
manual satildeo a escolha de eleiccedilatildeo para contextos em que o modelador deseja o maior niacutevel controlo
possiacutevel sobre o objeto a ser produzido No entanto considerando ferramentas de modelaccedilatildeo
procedimental tem existido um esforccedilo por parte desta comunidade para tornar a correspondente
experiecircncia de utilizaccedilatildeo mais acessiacutevel a utilizadores pouco familiarizados com o funcionamento
do mesmo Por enquanto a utilizaccedilatildeo deste tipo de ferramentas ainda requer que o conteuacutedo
seja criado em ferramentas dedicadas completamente separadas das ferramentas tradicionais (ie
Maya Blender) essenciais para o trabalho artiacutestico levando a quebras no fluxo de trabalho
13
Estado da Arte e Trabalhos Relacionados
14
Capiacutetulo 3
Metodologia
Com os desenvolvimentos atuais na aacuterea de modelaccedilatildeo procedimental apresentados no capiacute-
tulo 2 eacute possiacutevel verificar que as soluccedilotildees de MP existentes permitem produzir variados tipos de
conteuacutedo tais como terrenos vegetaccedilatildeo edifiacutecios estradas e cidades por outro lado as respeti-
vas integraccedilotildees em ambientes de modelaccedilatildeo manual satildeo algo limitadas ou apenas disponiacuteveis em
ferramentas externas especializadas num uacutenico tipo de conteuacutedo
Da mesma forma como verificado em 21 foram efetuadas vaacuterias tentativas pela comunidade
envolvida em geraccedilatildeo procedimental no sentido a melhorar a interaccedilatildeo com ferramentas dedica-
das agrave geraccedilatildeo procedimental no entanto existe ainda uma grande margem para avanccedilo de uma
integraccedilatildeo geneacuterica destes processos numa ferramenta de modelaccedilatildeo manual Devido agrave falta de
soluccedilotildees que se integrem de forma transparente e acessiacutevel em ambientes de modelaccedilatildeo manual
pretende-se apresentar uma soluccedilatildeo com o objetivo de interligar as duas abordagens neste capiacute-
tulo Inicialmente seraacute apresentada em pormenor a arquitetura da soluccedilatildeo de seguida o protocolo
de comunicaccedilatildeo entre os dois ambientes de modelaccedilatildeo e finalmente seraacute proposto um meacutetodo de
trabalho no qual seraacute descrita a interaccedilatildeo ideal entre o modelador e a soluccedilatildeo proposta
31 Meacutetodo de Trabalho
Numa interaccedilatildeo ideal o modelador teria controlo absoluto sobre os meacutetodos de geraccedilatildeo proce-
dimental e seria possiacutevel modelar procedimentalmente sobre alteraccedilotildees manuais realizadas sobre
o objeto No entanto nem sempre eacute desejado esse niacutevel de controlo e interligaccedilatildeo entre as aborda-
gens Imaginando a modelaccedilatildeo de um edifiacutecio este eacute construiacutedo segundo meacutetodos procedimentais
e recebe como entrada um poliacutegono que delimita a fundaccedilatildeo assim como paracircmetros numeacutericos e
booleanos que definem a geometria resultante Depois de modelado procedimentalmente o objeto
eacute adicionado ao ambiente de modelaccedilatildeo manual onde o modelador pode realizar alteraccedilotildees em
detalhes na geometria ou mesmo alteraccedilotildees profundas na geometria do mesmo
15
Metodologia
Considerando uma situaccedilatildeo em que o modelador realizou alteraccedilotildees profundas na geometria
produzida como por exemplo a reparticcedilatildeo de uma das fachadas do edifiacutecio em trecircs fachadas
Assim que realizadas estas alteraccedilotildees o utilizador pretende alterar a altura do edifiacutecio alterando o
paracircmetro correspondente e requisitando uma atualizaccedilatildeo Para ser possiacutevel manter as alteraccedilotildees
realizadas manualmente e em simultacircneo respeitar as regras definidas pela geraccedilatildeo procedimen-
tal seria necessaacuterio converter estas alteraccedilotildees em regras possiacuteveis de definir no escopo do ambiente
de geraccedilatildeo procedimental
De qualquer das formas as alteraccedilotildees realizadas no ponto anterior podem simplesmente natildeo
fazer sentido apoacutes a aplicaccedilatildeo sobre o objeto que foi reproduzido seguindo as regras definias
por um procedimento Devido a esta limitaccedilatildeo eacute assumido que assim que o utilizador requisita
uma nova execuccedilatildeo de um procedimento o qual natildeo tem problemas em descartar as alteraccedilotildees
executadas manualmente sobre o objeto em questatildeo
Tendo em consideraccedilatildeo esta limitaccedilatildeo eacute possiacutevel estruturar um fluxo de trabalho que melhor
explore as vantagens e limitaccedilotildees de ambas as abordagens de geraccedilatildeo de conteuacutedo tridimensional
O utilizador tem uma panoacuteplia de conteuacutedos procedimentais ao seu dispor que podem ser definidas
via paracircmetros numeacutericos e geomeacutetricos O conteuacutedo eacute adicionado ao ambiente de modelaccedilatildeo ma-
nual e os paracircmetros podem ainda ser editados alterados ao custo de que as modificaccedilotildees manuais
realizadas sobre o objeto sejam descartadas
32 Metodologias de Interaccedilatildeo com o Utilizador
Em relaccedilatildeo agrave interaccedilatildeo com o utilizador foram estudadas trecircs abordagens para a interaccedilatildeo com
meacutetodos de geraccedilatildeo procedimental em ambiente de modelaccedilatildeo manual
321 Modificadores
O conceito de modificadores eacute jaacute utilizado em ambientes de modelaccedilatildeo manual eg no Blen-
der [Bap14 Ble15e] onde satildeo utilizados para realizar operaccedilotildees sobre objetos na cena sem destruir
a geometria subjacente apenas modificam a forma como os objetos satildeo percecionados pelo motor
de renderizaccedilatildeo Esta abordagem eacute uacutetil em situaccedilotildees onde o procedimento a ser executado en-
volve modificaccedilotildees sobre uma geometria base como tal permitindo realizar muacuteltiplas alteraccedilotildees
sobre um objeto podendo estas ser facilmente canceladas recuperando o objeto original No en-
tanto nem todos os recursos de geraccedilatildeo procedimental incidem sobre modificaccedilatildeo de geometria
Os meios de geraccedilatildeo procedimental em muitas situaccedilotildees produzem objetos e cenaacuterios uacutenicos e
independentes de qualquer geometria de entrada
322 Grafos
A abordagem de interaccedilatildeo via grafos eacute atualmente utilizada num ambiente de modelaccedilatildeo ma-
nual para a ediccedilatildeo de materiais [Ble15d] Tambeacutem chamada de Flow-Based Programming esta
16
Metodologia
abordagem permite apresentar ao utilizador os procedimentos como uma caixa negra com pos-
siacuteveis entradas e saiacutedas representadas como ligaccedilotildees de fluxo A correspondente utilizaccedilatildeo na
interaccedilatildeo com geraccedilatildeo procedimental pode permitir o encadeamento de muacuteltiplos procedimentos
No entanto a abordagem pode ser mais trabalhosa para o utilizador introduzindo um niacutevel de
interaccedilatildeo adicional para cada objeto introduzido na cena
323 Funccedilotildees
Esta abordagem disponibiliza ao utilizador cada recurso de geraccedilatildeo procedimental como uma
funccedilatildeo disponiacutevel a qualquer momento na interface da ferramenta de modelaccedilatildeo manual Aquando
da respetiva invocaccedilatildeo satildeo requisitados aos utilizadores os paracircmetros necessaacuterios agrave execuccedilatildeo
A abordagem em causa eacute potencialmente a mais faacutecil de adotar por parte dos utilizadores de
ferramentas de modelaccedilatildeo manual Devido agrave simplicidade na interaccedilatildeo assim como a reduzida
necessidade de tempo e recursos para a implementaccedilatildeo esta foi a abordagem de interaccedilatildeo utilizada
na soluccedilatildeo desenvolvida
33 Arquitetura da Soluccedilatildeo
Para abordar este problema eacute proposta a utilizaccedilatildeo de duas aplicaccedilotildees jaacute presentes no mer-
cado Uma aplicaccedilatildeo dedicada agrave modelaccedilatildeo procedimental e uma aplicaccedilatildeo de modelaccedilatildeo manual
Foi escolhida esta abordagem na medida em que eacute possiacutevel utilizar duas aplicaccedilotildees jaacute existentes
sendo possiacutevel dessa forma aproveitar os pontos fortes de cada soluccedilatildeo com o intuito de otimi-
zar o processo de criaccedilatildeo de novos cenaacuterios e conteuacutedo tridimensional Esta abordagem pode ser
representada como uma soluccedilatildeo estruturada numa arquitetura Cliente-Servidor em que a aplica-
ccedilatildeo de geraccedilatildeo procedimental eacute capaz de fornecer serviccedilos de geraccedilatildeo de conteuacutedo a um ou mais
clientes de modelaccedilatildeo Esta abordagem interliga as duas aplicaccedilotildees atraveacutes de um protocolo de
comunicaccedilatildeo Este permite ao utilizador da ferramenta de modelaccedilatildeo manual requisitar a produ-
ccedilatildeo de conteuacutedo seguindo os valores impostos pelo utilizador nos paracircmetros do procedimento
requisitado O protocolo eacute descrito em maior detalhe na secccedilatildeo 34
331 Vantagens
Faacutecil integraccedilatildeo em diferentes plataformas Devido agrave arquitetura ser baseada na comunicaccedilatildeo
entre duas aplicaccedilotildees por um protocolo de comunicaccedilatildeo geneacuterico eacute com alguma facili-
dade que se realiza a interligaccedilatildeo com diferentes soluccedilotildees de geraccedilatildeo procedimental ou de
modelaccedilatildeo manual Sendo assim possiacutevel a expansatildeo para novos ambientes de modelaccedilatildeo
manual ou mesmo introduzir novas soluccedilotildees de geraccedilatildeo procedimental
Escalabilidade A arquitetura proposta poderaacute permitir que esta seja implementada de modo a que
um servidor central de geraccedilatildeo procedimental sirva por exemplo num ambiente empresa-
rial como um repositoacuterio de recursos de geraccedilatildeo de conteuacutedos desta forma permitindo
17
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Introduccedilatildeo
Figura 11 Captura de ecratilde do viacutedeo jogo Crysis 3 da Electronic Arts
11 Contexto
Esta dissertaccedilatildeo insere-se na aacuterea da computaccedilatildeo graacutefica mais especificamente na aacuterea da mo-
delaccedilatildeo tridimensional geraccedilatildeo procedimental de modelos 3D e interaccedilatildeo com os mesmos Estas
aacutereas intersectam-se em rumo a uma melhor interaccedilatildeo com recursos de geraccedilatildeo procedimental
num ambiente de modelaccedilatildeo manual
Esta dissertaccedilatildeo foi realizada na Faculdade de Engenharia da Universidade do Porto no Labo-
ratoacuterio de IampD de Computaccedilatildeo Graacutefica Interaccedilatildeo e Jogos
12 Motivaccedilatildeo e Problema
Os avanccedilos no desenvolvimento de hardware e software resultam numa necessidade de con-
teuacutedo tridimensional maior e mais detalhado criando uma maior carga nas equipas que os pro-
duzem Como mencionado previamente a utilizaccedilatildeo de modelaccedilatildeo procedimental para a criaccedilatildeo
raacutepida de ambientes tridimensionais eacute altamente apelativa para a induacutestria permitindo poupar
tempo e dinheiro comparativamente a uma abordagem manual
No entanto esta abordagem dificulta ao modelador a introduccedilatildeo de pormenores pois os meacute-
todos procedimentais satildeo definidos tipicamente por um conjunto de regras e paracircmetros de uma
forma natildeo intuitiva ou de controlo limitado A simples modificaccedilatildeo de um paracircmetro pode criar
uma reaccedilatildeo em cadeia de modificaccedilotildees que alteram por completo o modelo gerado Eacute assim ape-
lativo encontrar um meacutetodo que melhor aproveite as vantagens das duas abordagens permitindo
aos modeladores uma produccedilatildeo de conteuacutedo tridimensional mais raacutepida e controlada
2
Introduccedilatildeo
13 Objetivos
O objetivo principal deste trabalho eacute desenvolver uma soluccedilatildeo que melhor aproveite as vanta-
gens das duas principais abordagens agrave modelaccedilatildeo 3D para tal eacute possiacutevel identificar os seguintes
objetivos especiacuteficos
bull Investigar o estado da arte da aacuterea da modelaccedilatildeo procedimental e modelaccedilatildeo manual em
particular os avanccedilos realizados na interaccedilatildeo com os meacutetodos utilizados em modelaccedilatildeo pro-
cedimental
bull Estudar as metodologias possiacuteveis para abordar o problema
bull Desenvolver uma soluccedilatildeo utilizando uma abordagem possiacutevel com os recursos disponiacuteveis
bull Testar a soluccedilatildeo com utilizadores proficientes em modelaccedilatildeo de conteuacutedo 3D
14 Estrutura do documento
Esta dissertaccedilatildeo encontra-se dividida em 6 capiacutetulos anexos e referecircncias O capiacutetulo pre-
sente consiste numa descriccedilatildeo do problema da motivaccedilatildeo e dos objetivos propostos para a cor-
respondente realizaccedilatildeo No capiacutetulo 2 eacute realizado um levantamento do estado da arte nas aacutereas
da modelaccedilatildeo procedimental e modelaccedilatildeo manual em especial os avanccedilos realizados na interaccedilatildeo
com os meacutetodos utilizados em modelaccedilatildeo procedimental No capiacutetulo 3 satildeo discutidas as meto-
dologias estudadas para a melhor interaccedilatildeo entre as duas abordagens agrave modelaccedilatildeo sendo tambeacutem
apresentada com maior detalhe a metodologia a ser utilizada
No capiacutetulo 4 satildeo descritos alguns detalhes de implementaccedilatildeo da soluccedilatildeo desenvolvida base-
ada na metodologia discutida no capiacutetulo 3
No capiacutetulo 5 eacute apresentada a metodologia de teste utilizada para avaliar a soluccedilatildeo desenvol-
vida sendo tambeacutem apresentados os resultados obtidos
No capiacutetulo 6 o final da dissertaccedilatildeo satildeo resumidas algumas constataccedilotildees e conclusotildees rea-
lizadas sobre esta dissertaccedilatildeo Eacute efetuada tambeacutem uma listagem de alguns pontos para potencial
trabalho futuro
3
Introduccedilatildeo
4
Capiacutetulo 2
Estado da Arte e TrabalhosRelacionados
Neste capiacutetulo seraacute realizada uma revisatildeo bibliograacutefica que visa apresentar todos os avanccedilos
realizados nas aacutereas da interaccedilatildeo com os meacutetodos de geraccedilatildeo procedimental Seratildeo apresentados
os tipos de conteuacutedo passiacuteveis de serem produzidos por meio destes meacutetodos bem como as teacutec-
nicas utilizadas para a respetiva interaccedilatildeo e geraccedilatildeo Iratildeo tambeacutem ser apresentadas as abordagens
existentes para uma modelaccedilatildeo manual e as ferramentas existentes no mercado
21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundosvirtuais
O paradigma de interaccedilatildeo com meacutetodos de geraccedilatildeo procedimental eacute tradicionalmente funci-
onal Cada procedimento pode ser considerado uma caixa negra de operaccedilotildees que dependendo
de certos valores de entrada produz um ou mais resultados A interaccedilatildeo com estes nem sempre
eacute a mais intuitiva pois para atingir o resultado desejado envolve em repetidas tentativa e erro por
parte do utilizador No entanto em anos recentes tem existido um avanccedilo consideraacutevel nesta aacuterea
tentado conceder ao utilizador maior controlo sobre os meacutetodos de geraccedilatildeo procedimental com
abordagens como Sketch-based editores visuais e Modelaccedilatildeo Procedimental Invertida
211 Teacutecnicas Sketch-based
Esta abordagem tenta aproximar o tipo de interaccedilatildeo com que os principais utilizadores de
meacutetodos de Modelaccedilatildeo Procedimental estatildeo familiarizados Noccedilotildees como Brushes e Sketches satildeo
alguns dos conceitos mais populares entre designers profissionais
5
Estado da Arte e Trabalhos Relacionados
2111 Terrenos
De Carpentier et al [dCB09] propuseram um meacutetodo de ediccedilatildeo de terrenos no qual eacute dada ao
utilizador a possibilidade de alterar o heightfield atraveacutes de procedural brushes tentando combinar
a interaccedilatildeo manual localizada com a modificaccedilatildeo da parametrizaccedilatildeo por completo de heightfields
Esta abordagem eacute capaz de produzir alteraccedilotildees a tempo real graccedilas agrave respetiva implementaccedilatildeo
com shaders
Smelik et al [STdKB10] seguindo a respetiva proposta de modelaccedilatildeo de mundos virtuais
[STdKB08] propotildeem a utilizaccedilatildeo da abordagem Procedural sketching e demonstram-na num
protoacutetipo intitulado de SketchaWorld Esta abordagem eacute dividida em dois principais modos de
interaccedilatildeo (Figura 21) Landscape Mode e Feature Mode
Figura 21 Procedural sketching of virtual worlds por Smelik et al [STdKB10]
No primeiro o utilizador interage com uma vista top-down do terreno divido em grelha e eacute
capaz de definir a informaccedilatildeo geoloacutegica de cada ceacutelula atraveacutes do uso de Brushes Em Feature
Mode o utilizador manipula pontos de controlo correspondendo a vetores ou poliacutegonos que deli-
mitam a localizaccedilatildeo de cidades rios e vegetaccedilatildeo A ferramenta fornece feedback da construccedilatildeo do
terreno a um ritmo consideraacutevel para uma interaccedilatildeo fluida Esta tambeacutem dispotildee de funcionalida-
des como undo e redo para uma melhorar a interaccedilatildeo entre o utilizador e a ferramenta permitindo
assim a introduccedilatildeo de alteraccedilotildees e caso estas natildeo sejam desejadas pelo utilizador estas podem
ser desfeitas rapidamente Gain et al [GMSe09] propotildeem uma soluccedilatildeo que permite ao utilizador
esboccedilar as silhuetas e limites de corpos montanhosos a serem gerados
6
Estado da Arte e Trabalhos Relacionados
2112 Estradas
Num esforccedilo de melhorar a interaccedilatildeo com path layouts Singh et al [SM08] desenvolveram a
ferramenta Drive que permite a conceptualizaccedilatildeo de redes rodoviaacuterias tridimensionais por meio
de esboccedilos que satildeo posteriormente aproximados a clotoacuteides (Curvas em que o raio varia line-
armente) Com esta abordagem eacute possiacutevel produzir itineraacuterios em que as transiccedilotildees entre raios
de curvatura satildeo lineares tornando-os assim adequados para a conduccedilatildeo A ferramenta tambeacutem
introduz Terrain sensitive sketching que por meios automaacuteticos coloca sinalizaccedilatildeo no percurso e
vegetaccedilatildeo nas redondezas
2113 Vegetaccedilatildeo
Figura 22 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et al[IOI06b IOI06a]
O trabalho de Ijiri et al [IOI06b IOI06a] apresenta uma teacutecnica que atraveacutes de traccedilados defi-
nidos pelo utilizador (Figura 22) permite a manipulaccedilatildeo da direccedilatildeo de crescimento de vegetaccedilatildeo
produzida por L-Systems uma abordagem jaacute muito estudada para a criaccedilatildeo de vegetaccedilatildeo pro-
posta por Lindenmayer [Lin68] como um tipo de gramaacutetica formal capaz de representar padrotildees
e geometria fractal existente na vegetaccedilatildeo Em 1988 foi proposto por Prusinkiewicz [PLH88] a
utilizaccedilatildeo de L-systems para a modelaccedilatildeo de vegetaccedilatildeo Ao longo das ultimas deacutecadas tecircm sido
realizados avanccedilos consideraacuteveis na produccedilatildeo de vegetaccedilatildeo realiacutestica [WP95] e a respetiva inte-
raccedilatildeo com o seu meio ambiente [MP96 Pru00] tentado assim produzir vegetaccedilatildeo que melhor
simule o comportamento fiacutesico e bioloacutegico de vegetaccedilatildeo real
Mais recentemente o trabalho de Palubicky et al [PHL+09] foi expandido e transportado
para uma aplicaccedilatildeo para dispositivos iPad em que o modelador tem um controlo fino sobre o
crescimento de uma aacutervore Utilizando o conceito de tree self-organization Longay et al criaram
7
Estado da Arte e Trabalhos Relacionados
a ferramenta TreeSketch 23 que estimula a competiccedilatildeo entre os ramos de uma aacutervore por espaccedilo
e luz dentro dos paracircmetros e inputs visuais dados pelo utilizador [LRBP12]
Figura 23 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch
212 Editores Visuais
Numa tentativa de melhorar a interaccedilatildeo com modelaccedilatildeo procedimental baseada em gramaacuteticas
[WWSR03 MWH+06] Lipp et al propuseram uma abordagem que permite a manipulaccedilatildeo direta
do resultado produzido por uma gramaacutetica O utilizador pode manipular diretamente no objeto as
respetivas dimensotildees e configuraccedilotildees [LWW08]
Mais recentemente Krecklau et al [KK12] introduziram uma abordagem que permite a ge-
raccedilatildeo de cenas a partir de primitivas de alto niacutevel e a correspondente manipulaccedilatildeo por interaccedilatildeo
direta na cena consequentemente permitindo a utilizadores menos experientes a utilizaccedilatildeo de
gramaacuteticas procedimentais complexas sem a necessidade de interaccedilatildeo textual com as mesmas
2121 Visual Node Based
Editores Visual Node Based satildeo utilizados em muitas aplicaccedilotildees comercias como meio de
dar ao utilizador feedback visual do fluxo de informaccedilatildeo Encontra-se em editores de shaders
[Hol15 Aut15b] editores de animaccedilotildees [Tec15] e em editores de texturas [Cod15] A vasta uti-
lizaccedilatildeo da teacutecnica na aacuterea de produccedilatildeo de conteuacutedo 3D por utilizadores com pouca experiecircncia
de programaccedilatildeo levou a que investigadores a utilizassem para a especificaccedilatildeo de gramaacuteticas de
produccedilatildeo
Nesse contexto Patow [Pat12] desenvolveu uma soluccedilatildeo para a construccedilatildeo e manipulaccedilatildeo de
gramaacuteticas por meio de um editor visual onde noacutes que representam operaccedilotildees geomeacutetricas dos
correspondentes antecessores transmitem o resultado aos noacutes sucessores Na mesma publica-
ccedilatildeo Patow realccedila a importacircncia que esta abordagem acarreta para a modelaccedilatildeo procedimental de
edifiacutecios e admite que existe ainda muito potencial por explorar
8
Estado da Arte e Trabalhos Relacionados
Mais recentemente o trabalho de Silva et al [SMBC13] apresenta uma metodologia de edi-
ccedilatildeo em que grafos podem ser encapsulados em noacutes designados Component capazes de representar
construccedilotildees complexas Os noacutes podem ser facilmente introduzidos noutros grafos e editados por
meio de filtros de fluxo colocados nas arestas ou por restriccedilotildees que auxiliam a especificar a utili-
zaccedilatildeo dos noacutes (Figura 24)
Figura 24 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13]
213 Modelaccedilatildeo Procedimental Invertida
Inverse PM eacute uma teacutecnica em que um dado modelo de entrada eacute aproximado a uma represen-
taccedilatildeo procedimental
Aliaga et al [ARB07] apresenta a reconstruccedilatildeo de edifiacutecios por meio de fotografias Nesta
abordagem o utilizador define os limites das fachadas do edifiacutecio criando uma representaccedilatildeo
minimalista De seguida eacute automaticamente aproximada uma gramaacutetica que melhor representa
o edifiacutecio em questatildeo Com os trabalhos de Šrsquotava et al [ŠBM+10] na parametrizaccedilatildeo de arte
vetorial 2D e de Mitra et al [MGP06] em encontrar simetrias em objetos tridimensionais Bokeloh
et al [BWS10] aplica estes conceitos para a descoberta de simetrias nos objetos e a consequente
aproximaccedilatildeo de gramaacuteticas que definam o objeto em questatildeo
As abordagens atuais focam-se em Modelaccedilatildeo invertida de ambientes urbanos no entanto
Vanegas et al [VGDA+12] demonstram uma metodologia de aproximaccedilatildeo de gramaacuteticas capazes
de representar para aleacutem de edifiacutecios sistemas complexos de vegetaccedilatildeo aproximados a um objeto
jaacute existente
9
Estado da Arte e Trabalhos Relacionados
22 Modelaccedilatildeo 3D Manual
Para a produccedilatildeo de objetos tridimensionais os modeladores utilizam ferramentas dedicadas
que lhes datildeo um controlo total sobre o modelo a ser construiacutedo Estes variam em metaacuteforas de
interface e em puacuteblico alvo Nesta secccedilatildeo vatildeo ser abordadas as teacutecnicas de modelaccedilatildeo atualmente
utilizadas por estas ferramentas e seratildeo listadas as ferramentas existentes no mercado e as respeti-
vas funcionalidades principais
221 Teacutecnicas de Modelaccedilatildeo Manual
2211 Polygon Modelling
Polygon Modelling eacute uma abordagem para a representaccedilatildeo de superfiacutecies tridimensionais utili-
zando poliacutegonos estes satildeo representados por veacutertices e arestas e em grupos formam uma Polygon
Mesh que pode ser armazenada de muacuteltiplas formas [TM06 Bau72 Smi06] Eacute possiacutevel criar ma-
lhas veacutertice a veacutertice manualmente No entanto eacute comum a respetiva manipulaccedilatildeo em software
graacutefico concedendo aos modeladores ferramentas interativas como Blender Autodesk Maya e 3D
Studio Max
Figura 25 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14]
Uma das abordagens mais comuns eacute denominada Box Modelling na qual uma forma geomeacute-
trica considerada uma primitiva (ie cubo esfera cilindro) eacute esculpida iterativamente por pas-
sos de subdivisatildeo do objeto e subsequente manipulaccedilatildeo da geometria ateacute se obter o objeto final
[Jon02 sub14] A figura 25 demonstra da teacutecnica Box Modelling para a modelaccedilatildeo de uma face
Esta abordagem pode ser considerada uma abordagem Subtrativa pois eacute atraveacutes da reduccedilatildeo de um
objeto base que eacute obtido o objeto desejado
10
Estado da Arte e Trabalhos Relacionados
O polygon modelling caracteriza-se pelo controlo direto sobre a colocaccedilatildeo de cada veacutertice de
uma superfiacutecie permitindo dessa forma um controlo fino e preciso sobre o resultado a produzir
2212 NURBS
NURBS ou Non-uniform rational B-spline eacute uma generalizaccedilatildeo de B-Splines e Curvas de Beacute-
zier [KR79 Cab92] um modelo matemaacutetico usado para representar curvas e superfiacutecies com
grande precisatildeo e flexibilidade (Figura 26) Eacute principalmente utilizado em aacutereas da computaccedilatildeo
graacutefica (CAD CAM CAE) onde a precisatildeo dos modelos obtidos eacute muito importante Inicialmente
estudada por Matemaacuteticos como I J Schoenberg [Cob84] foi aplicada em sistemas CAD para a
modelaccedilatildeo na induacutestria Automoacutevel [Beacute83 Beacutez81 Bez68]
Figura 26 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modeloNURBS
2213 Digital Sculpting
Digital Sculpting eacute a adaptaccedilatildeo de teacutecnicas utilizadas para moldar materiais como o barro agrave
modelaccedilatildeo 3D Estas ferramentas permitem ao modelador empurrar puxar polir vincare
adicionar ou remover volume Perry et al [PF01] introduziram Kizamu um dos primeiros passos
na aacuterea do Digital Sculpting Os modelos satildeo representados no que eacute chamado de Adaptively Sam-
pled Distance Fields (ADF) [FPRJ00] que permite representar dados volumeacutetricos que tornam o
processo de Digital Sculpting possiacutevel
222 Ferramentas de Modelaccedilatildeo 3D
2221 Blender
O Blender [ble15a] eacute uma ferramenta profissional de modelaccedilatildeo de coacutedigo aberto desen-
volvida pela Blender Foundation Suporta uma grande variedade de primitivas geomeacutetricas in-
11
Estado da Arte e Trabalhos Relacionados
Figura 27 Interface da ferramenta Blender
cluiacutendo Polygon Meshes curvas de Bezier superfiacutecies NURBS Metaballs e Digital Sculpting
Esta destaca-se por ser gratuita e pela facilidade de criar extensotildees [ble15b] usando a API Python
existente [ble15c] que permite adicionar novas funcionalidades agrave ferramenta
2222 Autodesk Maya
Figura 28 Interface da ferramenta Autodesk Maya
O Autodesk Maya [Aut15b] eacute uma ferramenta de produccedilatildeo de conteuacutedo 3D utilizada nas induacutes-
trias do cinema televisatildeo videojogos e arquitetura Eacute de coacutedigo fechado e a respetiva utilizaccedilatildeo
requer que o utilizador possua uma licenccedila Tal como o Blender o Maya daacute aos modeladores
ferramentas para estes criarem objetos de uma forma interativa 28 Apesar de ser uma ferramenta
versaacutetil e capaz de satisfazer as necessidades de todas induacutestrias acima referidas o Autodesk
Maya tende a ser mais utilizado pela induacutestria do Cinema devido agrave vasta customizaccedilatildeo possiacutevel de
aspetos importantes para esta induacutestria como Animaccedilatildeo e VFX [Aut15c]
12
Estado da Arte e Trabalhos Relacionados
2223 Autodesk 3D Studio Max
O 3D Studio Max [Aut15a] eacute outra ferramenta da Autodesk em muitos aspetos semelhante
ao Maya No entanto o 3DS Max estaacute apenas disponiacutevel para maacutequinas de sistema operativo
Windows e sempre foi mais utilizado pela induacutestria dos videojogos para a criaccedilatildeo de modelos 3D
Tal como o Autodesk Maya este dispotildee de poderosos motores de renderizaccedilatildeo Ray Tracing
2224 Zbrush
O Zbrush [Pix15] eacute uma ferramenta de modelaccedilatildeo 3D baseada nos conceitos de Digital Mo-
delling Daacute ao artista muacuteltiplas Brushes que permitem manipular o objeto a ser definido com
paradigmas transportados de outras aacutereas artiacutesticas Pode tornar mais acessiacutevel para um utilizador
pouco experiente com alguns paradigmas da Computaccedilatildeo Graacutefica a modelaccedilatildeo de objetos com
consideraacutevel detalhe e liberdade artiacutestica [Spe11]
23 Sumaacuterio
Apoacutes o levantamento do estado da arte eacute possiacutevel constatar que as ferramentas de modelaccedilatildeo
manual satildeo a escolha de eleiccedilatildeo para contextos em que o modelador deseja o maior niacutevel controlo
possiacutevel sobre o objeto a ser produzido No entanto considerando ferramentas de modelaccedilatildeo
procedimental tem existido um esforccedilo por parte desta comunidade para tornar a correspondente
experiecircncia de utilizaccedilatildeo mais acessiacutevel a utilizadores pouco familiarizados com o funcionamento
do mesmo Por enquanto a utilizaccedilatildeo deste tipo de ferramentas ainda requer que o conteuacutedo
seja criado em ferramentas dedicadas completamente separadas das ferramentas tradicionais (ie
Maya Blender) essenciais para o trabalho artiacutestico levando a quebras no fluxo de trabalho
13
Estado da Arte e Trabalhos Relacionados
14
Capiacutetulo 3
Metodologia
Com os desenvolvimentos atuais na aacuterea de modelaccedilatildeo procedimental apresentados no capiacute-
tulo 2 eacute possiacutevel verificar que as soluccedilotildees de MP existentes permitem produzir variados tipos de
conteuacutedo tais como terrenos vegetaccedilatildeo edifiacutecios estradas e cidades por outro lado as respeti-
vas integraccedilotildees em ambientes de modelaccedilatildeo manual satildeo algo limitadas ou apenas disponiacuteveis em
ferramentas externas especializadas num uacutenico tipo de conteuacutedo
Da mesma forma como verificado em 21 foram efetuadas vaacuterias tentativas pela comunidade
envolvida em geraccedilatildeo procedimental no sentido a melhorar a interaccedilatildeo com ferramentas dedica-
das agrave geraccedilatildeo procedimental no entanto existe ainda uma grande margem para avanccedilo de uma
integraccedilatildeo geneacuterica destes processos numa ferramenta de modelaccedilatildeo manual Devido agrave falta de
soluccedilotildees que se integrem de forma transparente e acessiacutevel em ambientes de modelaccedilatildeo manual
pretende-se apresentar uma soluccedilatildeo com o objetivo de interligar as duas abordagens neste capiacute-
tulo Inicialmente seraacute apresentada em pormenor a arquitetura da soluccedilatildeo de seguida o protocolo
de comunicaccedilatildeo entre os dois ambientes de modelaccedilatildeo e finalmente seraacute proposto um meacutetodo de
trabalho no qual seraacute descrita a interaccedilatildeo ideal entre o modelador e a soluccedilatildeo proposta
31 Meacutetodo de Trabalho
Numa interaccedilatildeo ideal o modelador teria controlo absoluto sobre os meacutetodos de geraccedilatildeo proce-
dimental e seria possiacutevel modelar procedimentalmente sobre alteraccedilotildees manuais realizadas sobre
o objeto No entanto nem sempre eacute desejado esse niacutevel de controlo e interligaccedilatildeo entre as aborda-
gens Imaginando a modelaccedilatildeo de um edifiacutecio este eacute construiacutedo segundo meacutetodos procedimentais
e recebe como entrada um poliacutegono que delimita a fundaccedilatildeo assim como paracircmetros numeacutericos e
booleanos que definem a geometria resultante Depois de modelado procedimentalmente o objeto
eacute adicionado ao ambiente de modelaccedilatildeo manual onde o modelador pode realizar alteraccedilotildees em
detalhes na geometria ou mesmo alteraccedilotildees profundas na geometria do mesmo
15
Metodologia
Considerando uma situaccedilatildeo em que o modelador realizou alteraccedilotildees profundas na geometria
produzida como por exemplo a reparticcedilatildeo de uma das fachadas do edifiacutecio em trecircs fachadas
Assim que realizadas estas alteraccedilotildees o utilizador pretende alterar a altura do edifiacutecio alterando o
paracircmetro correspondente e requisitando uma atualizaccedilatildeo Para ser possiacutevel manter as alteraccedilotildees
realizadas manualmente e em simultacircneo respeitar as regras definidas pela geraccedilatildeo procedimen-
tal seria necessaacuterio converter estas alteraccedilotildees em regras possiacuteveis de definir no escopo do ambiente
de geraccedilatildeo procedimental
De qualquer das formas as alteraccedilotildees realizadas no ponto anterior podem simplesmente natildeo
fazer sentido apoacutes a aplicaccedilatildeo sobre o objeto que foi reproduzido seguindo as regras definias
por um procedimento Devido a esta limitaccedilatildeo eacute assumido que assim que o utilizador requisita
uma nova execuccedilatildeo de um procedimento o qual natildeo tem problemas em descartar as alteraccedilotildees
executadas manualmente sobre o objeto em questatildeo
Tendo em consideraccedilatildeo esta limitaccedilatildeo eacute possiacutevel estruturar um fluxo de trabalho que melhor
explore as vantagens e limitaccedilotildees de ambas as abordagens de geraccedilatildeo de conteuacutedo tridimensional
O utilizador tem uma panoacuteplia de conteuacutedos procedimentais ao seu dispor que podem ser definidas
via paracircmetros numeacutericos e geomeacutetricos O conteuacutedo eacute adicionado ao ambiente de modelaccedilatildeo ma-
nual e os paracircmetros podem ainda ser editados alterados ao custo de que as modificaccedilotildees manuais
realizadas sobre o objeto sejam descartadas
32 Metodologias de Interaccedilatildeo com o Utilizador
Em relaccedilatildeo agrave interaccedilatildeo com o utilizador foram estudadas trecircs abordagens para a interaccedilatildeo com
meacutetodos de geraccedilatildeo procedimental em ambiente de modelaccedilatildeo manual
321 Modificadores
O conceito de modificadores eacute jaacute utilizado em ambientes de modelaccedilatildeo manual eg no Blen-
der [Bap14 Ble15e] onde satildeo utilizados para realizar operaccedilotildees sobre objetos na cena sem destruir
a geometria subjacente apenas modificam a forma como os objetos satildeo percecionados pelo motor
de renderizaccedilatildeo Esta abordagem eacute uacutetil em situaccedilotildees onde o procedimento a ser executado en-
volve modificaccedilotildees sobre uma geometria base como tal permitindo realizar muacuteltiplas alteraccedilotildees
sobre um objeto podendo estas ser facilmente canceladas recuperando o objeto original No en-
tanto nem todos os recursos de geraccedilatildeo procedimental incidem sobre modificaccedilatildeo de geometria
Os meios de geraccedilatildeo procedimental em muitas situaccedilotildees produzem objetos e cenaacuterios uacutenicos e
independentes de qualquer geometria de entrada
322 Grafos
A abordagem de interaccedilatildeo via grafos eacute atualmente utilizada num ambiente de modelaccedilatildeo ma-
nual para a ediccedilatildeo de materiais [Ble15d] Tambeacutem chamada de Flow-Based Programming esta
16
Metodologia
abordagem permite apresentar ao utilizador os procedimentos como uma caixa negra com pos-
siacuteveis entradas e saiacutedas representadas como ligaccedilotildees de fluxo A correspondente utilizaccedilatildeo na
interaccedilatildeo com geraccedilatildeo procedimental pode permitir o encadeamento de muacuteltiplos procedimentos
No entanto a abordagem pode ser mais trabalhosa para o utilizador introduzindo um niacutevel de
interaccedilatildeo adicional para cada objeto introduzido na cena
323 Funccedilotildees
Esta abordagem disponibiliza ao utilizador cada recurso de geraccedilatildeo procedimental como uma
funccedilatildeo disponiacutevel a qualquer momento na interface da ferramenta de modelaccedilatildeo manual Aquando
da respetiva invocaccedilatildeo satildeo requisitados aos utilizadores os paracircmetros necessaacuterios agrave execuccedilatildeo
A abordagem em causa eacute potencialmente a mais faacutecil de adotar por parte dos utilizadores de
ferramentas de modelaccedilatildeo manual Devido agrave simplicidade na interaccedilatildeo assim como a reduzida
necessidade de tempo e recursos para a implementaccedilatildeo esta foi a abordagem de interaccedilatildeo utilizada
na soluccedilatildeo desenvolvida
33 Arquitetura da Soluccedilatildeo
Para abordar este problema eacute proposta a utilizaccedilatildeo de duas aplicaccedilotildees jaacute presentes no mer-
cado Uma aplicaccedilatildeo dedicada agrave modelaccedilatildeo procedimental e uma aplicaccedilatildeo de modelaccedilatildeo manual
Foi escolhida esta abordagem na medida em que eacute possiacutevel utilizar duas aplicaccedilotildees jaacute existentes
sendo possiacutevel dessa forma aproveitar os pontos fortes de cada soluccedilatildeo com o intuito de otimi-
zar o processo de criaccedilatildeo de novos cenaacuterios e conteuacutedo tridimensional Esta abordagem pode ser
representada como uma soluccedilatildeo estruturada numa arquitetura Cliente-Servidor em que a aplica-
ccedilatildeo de geraccedilatildeo procedimental eacute capaz de fornecer serviccedilos de geraccedilatildeo de conteuacutedo a um ou mais
clientes de modelaccedilatildeo Esta abordagem interliga as duas aplicaccedilotildees atraveacutes de um protocolo de
comunicaccedilatildeo Este permite ao utilizador da ferramenta de modelaccedilatildeo manual requisitar a produ-
ccedilatildeo de conteuacutedo seguindo os valores impostos pelo utilizador nos paracircmetros do procedimento
requisitado O protocolo eacute descrito em maior detalhe na secccedilatildeo 34
331 Vantagens
Faacutecil integraccedilatildeo em diferentes plataformas Devido agrave arquitetura ser baseada na comunicaccedilatildeo
entre duas aplicaccedilotildees por um protocolo de comunicaccedilatildeo geneacuterico eacute com alguma facili-
dade que se realiza a interligaccedilatildeo com diferentes soluccedilotildees de geraccedilatildeo procedimental ou de
modelaccedilatildeo manual Sendo assim possiacutevel a expansatildeo para novos ambientes de modelaccedilatildeo
manual ou mesmo introduzir novas soluccedilotildees de geraccedilatildeo procedimental
Escalabilidade A arquitetura proposta poderaacute permitir que esta seja implementada de modo a que
um servidor central de geraccedilatildeo procedimental sirva por exemplo num ambiente empresa-
rial como um repositoacuterio de recursos de geraccedilatildeo de conteuacutedos desta forma permitindo
17
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Introduccedilatildeo
13 Objetivos
O objetivo principal deste trabalho eacute desenvolver uma soluccedilatildeo que melhor aproveite as vanta-
gens das duas principais abordagens agrave modelaccedilatildeo 3D para tal eacute possiacutevel identificar os seguintes
objetivos especiacuteficos
bull Investigar o estado da arte da aacuterea da modelaccedilatildeo procedimental e modelaccedilatildeo manual em
particular os avanccedilos realizados na interaccedilatildeo com os meacutetodos utilizados em modelaccedilatildeo pro-
cedimental
bull Estudar as metodologias possiacuteveis para abordar o problema
bull Desenvolver uma soluccedilatildeo utilizando uma abordagem possiacutevel com os recursos disponiacuteveis
bull Testar a soluccedilatildeo com utilizadores proficientes em modelaccedilatildeo de conteuacutedo 3D
14 Estrutura do documento
Esta dissertaccedilatildeo encontra-se dividida em 6 capiacutetulos anexos e referecircncias O capiacutetulo pre-
sente consiste numa descriccedilatildeo do problema da motivaccedilatildeo e dos objetivos propostos para a cor-
respondente realizaccedilatildeo No capiacutetulo 2 eacute realizado um levantamento do estado da arte nas aacutereas
da modelaccedilatildeo procedimental e modelaccedilatildeo manual em especial os avanccedilos realizados na interaccedilatildeo
com os meacutetodos utilizados em modelaccedilatildeo procedimental No capiacutetulo 3 satildeo discutidas as meto-
dologias estudadas para a melhor interaccedilatildeo entre as duas abordagens agrave modelaccedilatildeo sendo tambeacutem
apresentada com maior detalhe a metodologia a ser utilizada
No capiacutetulo 4 satildeo descritos alguns detalhes de implementaccedilatildeo da soluccedilatildeo desenvolvida base-
ada na metodologia discutida no capiacutetulo 3
No capiacutetulo 5 eacute apresentada a metodologia de teste utilizada para avaliar a soluccedilatildeo desenvol-
vida sendo tambeacutem apresentados os resultados obtidos
No capiacutetulo 6 o final da dissertaccedilatildeo satildeo resumidas algumas constataccedilotildees e conclusotildees rea-
lizadas sobre esta dissertaccedilatildeo Eacute efetuada tambeacutem uma listagem de alguns pontos para potencial
trabalho futuro
3
Introduccedilatildeo
4
Capiacutetulo 2
Estado da Arte e TrabalhosRelacionados
Neste capiacutetulo seraacute realizada uma revisatildeo bibliograacutefica que visa apresentar todos os avanccedilos
realizados nas aacutereas da interaccedilatildeo com os meacutetodos de geraccedilatildeo procedimental Seratildeo apresentados
os tipos de conteuacutedo passiacuteveis de serem produzidos por meio destes meacutetodos bem como as teacutec-
nicas utilizadas para a respetiva interaccedilatildeo e geraccedilatildeo Iratildeo tambeacutem ser apresentadas as abordagens
existentes para uma modelaccedilatildeo manual e as ferramentas existentes no mercado
21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundosvirtuais
O paradigma de interaccedilatildeo com meacutetodos de geraccedilatildeo procedimental eacute tradicionalmente funci-
onal Cada procedimento pode ser considerado uma caixa negra de operaccedilotildees que dependendo
de certos valores de entrada produz um ou mais resultados A interaccedilatildeo com estes nem sempre
eacute a mais intuitiva pois para atingir o resultado desejado envolve em repetidas tentativa e erro por
parte do utilizador No entanto em anos recentes tem existido um avanccedilo consideraacutevel nesta aacuterea
tentado conceder ao utilizador maior controlo sobre os meacutetodos de geraccedilatildeo procedimental com
abordagens como Sketch-based editores visuais e Modelaccedilatildeo Procedimental Invertida
211 Teacutecnicas Sketch-based
Esta abordagem tenta aproximar o tipo de interaccedilatildeo com que os principais utilizadores de
meacutetodos de Modelaccedilatildeo Procedimental estatildeo familiarizados Noccedilotildees como Brushes e Sketches satildeo
alguns dos conceitos mais populares entre designers profissionais
5
Estado da Arte e Trabalhos Relacionados
2111 Terrenos
De Carpentier et al [dCB09] propuseram um meacutetodo de ediccedilatildeo de terrenos no qual eacute dada ao
utilizador a possibilidade de alterar o heightfield atraveacutes de procedural brushes tentando combinar
a interaccedilatildeo manual localizada com a modificaccedilatildeo da parametrizaccedilatildeo por completo de heightfields
Esta abordagem eacute capaz de produzir alteraccedilotildees a tempo real graccedilas agrave respetiva implementaccedilatildeo
com shaders
Smelik et al [STdKB10] seguindo a respetiva proposta de modelaccedilatildeo de mundos virtuais
[STdKB08] propotildeem a utilizaccedilatildeo da abordagem Procedural sketching e demonstram-na num
protoacutetipo intitulado de SketchaWorld Esta abordagem eacute dividida em dois principais modos de
interaccedilatildeo (Figura 21) Landscape Mode e Feature Mode
Figura 21 Procedural sketching of virtual worlds por Smelik et al [STdKB10]
No primeiro o utilizador interage com uma vista top-down do terreno divido em grelha e eacute
capaz de definir a informaccedilatildeo geoloacutegica de cada ceacutelula atraveacutes do uso de Brushes Em Feature
Mode o utilizador manipula pontos de controlo correspondendo a vetores ou poliacutegonos que deli-
mitam a localizaccedilatildeo de cidades rios e vegetaccedilatildeo A ferramenta fornece feedback da construccedilatildeo do
terreno a um ritmo consideraacutevel para uma interaccedilatildeo fluida Esta tambeacutem dispotildee de funcionalida-
des como undo e redo para uma melhorar a interaccedilatildeo entre o utilizador e a ferramenta permitindo
assim a introduccedilatildeo de alteraccedilotildees e caso estas natildeo sejam desejadas pelo utilizador estas podem
ser desfeitas rapidamente Gain et al [GMSe09] propotildeem uma soluccedilatildeo que permite ao utilizador
esboccedilar as silhuetas e limites de corpos montanhosos a serem gerados
6
Estado da Arte e Trabalhos Relacionados
2112 Estradas
Num esforccedilo de melhorar a interaccedilatildeo com path layouts Singh et al [SM08] desenvolveram a
ferramenta Drive que permite a conceptualizaccedilatildeo de redes rodoviaacuterias tridimensionais por meio
de esboccedilos que satildeo posteriormente aproximados a clotoacuteides (Curvas em que o raio varia line-
armente) Com esta abordagem eacute possiacutevel produzir itineraacuterios em que as transiccedilotildees entre raios
de curvatura satildeo lineares tornando-os assim adequados para a conduccedilatildeo A ferramenta tambeacutem
introduz Terrain sensitive sketching que por meios automaacuteticos coloca sinalizaccedilatildeo no percurso e
vegetaccedilatildeo nas redondezas
2113 Vegetaccedilatildeo
Figura 22 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et al[IOI06b IOI06a]
O trabalho de Ijiri et al [IOI06b IOI06a] apresenta uma teacutecnica que atraveacutes de traccedilados defi-
nidos pelo utilizador (Figura 22) permite a manipulaccedilatildeo da direccedilatildeo de crescimento de vegetaccedilatildeo
produzida por L-Systems uma abordagem jaacute muito estudada para a criaccedilatildeo de vegetaccedilatildeo pro-
posta por Lindenmayer [Lin68] como um tipo de gramaacutetica formal capaz de representar padrotildees
e geometria fractal existente na vegetaccedilatildeo Em 1988 foi proposto por Prusinkiewicz [PLH88] a
utilizaccedilatildeo de L-systems para a modelaccedilatildeo de vegetaccedilatildeo Ao longo das ultimas deacutecadas tecircm sido
realizados avanccedilos consideraacuteveis na produccedilatildeo de vegetaccedilatildeo realiacutestica [WP95] e a respetiva inte-
raccedilatildeo com o seu meio ambiente [MP96 Pru00] tentado assim produzir vegetaccedilatildeo que melhor
simule o comportamento fiacutesico e bioloacutegico de vegetaccedilatildeo real
Mais recentemente o trabalho de Palubicky et al [PHL+09] foi expandido e transportado
para uma aplicaccedilatildeo para dispositivos iPad em que o modelador tem um controlo fino sobre o
crescimento de uma aacutervore Utilizando o conceito de tree self-organization Longay et al criaram
7
Estado da Arte e Trabalhos Relacionados
a ferramenta TreeSketch 23 que estimula a competiccedilatildeo entre os ramos de uma aacutervore por espaccedilo
e luz dentro dos paracircmetros e inputs visuais dados pelo utilizador [LRBP12]
Figura 23 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch
212 Editores Visuais
Numa tentativa de melhorar a interaccedilatildeo com modelaccedilatildeo procedimental baseada em gramaacuteticas
[WWSR03 MWH+06] Lipp et al propuseram uma abordagem que permite a manipulaccedilatildeo direta
do resultado produzido por uma gramaacutetica O utilizador pode manipular diretamente no objeto as
respetivas dimensotildees e configuraccedilotildees [LWW08]
Mais recentemente Krecklau et al [KK12] introduziram uma abordagem que permite a ge-
raccedilatildeo de cenas a partir de primitivas de alto niacutevel e a correspondente manipulaccedilatildeo por interaccedilatildeo
direta na cena consequentemente permitindo a utilizadores menos experientes a utilizaccedilatildeo de
gramaacuteticas procedimentais complexas sem a necessidade de interaccedilatildeo textual com as mesmas
2121 Visual Node Based
Editores Visual Node Based satildeo utilizados em muitas aplicaccedilotildees comercias como meio de
dar ao utilizador feedback visual do fluxo de informaccedilatildeo Encontra-se em editores de shaders
[Hol15 Aut15b] editores de animaccedilotildees [Tec15] e em editores de texturas [Cod15] A vasta uti-
lizaccedilatildeo da teacutecnica na aacuterea de produccedilatildeo de conteuacutedo 3D por utilizadores com pouca experiecircncia
de programaccedilatildeo levou a que investigadores a utilizassem para a especificaccedilatildeo de gramaacuteticas de
produccedilatildeo
Nesse contexto Patow [Pat12] desenvolveu uma soluccedilatildeo para a construccedilatildeo e manipulaccedilatildeo de
gramaacuteticas por meio de um editor visual onde noacutes que representam operaccedilotildees geomeacutetricas dos
correspondentes antecessores transmitem o resultado aos noacutes sucessores Na mesma publica-
ccedilatildeo Patow realccedila a importacircncia que esta abordagem acarreta para a modelaccedilatildeo procedimental de
edifiacutecios e admite que existe ainda muito potencial por explorar
8
Estado da Arte e Trabalhos Relacionados
Mais recentemente o trabalho de Silva et al [SMBC13] apresenta uma metodologia de edi-
ccedilatildeo em que grafos podem ser encapsulados em noacutes designados Component capazes de representar
construccedilotildees complexas Os noacutes podem ser facilmente introduzidos noutros grafos e editados por
meio de filtros de fluxo colocados nas arestas ou por restriccedilotildees que auxiliam a especificar a utili-
zaccedilatildeo dos noacutes (Figura 24)
Figura 24 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13]
213 Modelaccedilatildeo Procedimental Invertida
Inverse PM eacute uma teacutecnica em que um dado modelo de entrada eacute aproximado a uma represen-
taccedilatildeo procedimental
Aliaga et al [ARB07] apresenta a reconstruccedilatildeo de edifiacutecios por meio de fotografias Nesta
abordagem o utilizador define os limites das fachadas do edifiacutecio criando uma representaccedilatildeo
minimalista De seguida eacute automaticamente aproximada uma gramaacutetica que melhor representa
o edifiacutecio em questatildeo Com os trabalhos de Šrsquotava et al [ŠBM+10] na parametrizaccedilatildeo de arte
vetorial 2D e de Mitra et al [MGP06] em encontrar simetrias em objetos tridimensionais Bokeloh
et al [BWS10] aplica estes conceitos para a descoberta de simetrias nos objetos e a consequente
aproximaccedilatildeo de gramaacuteticas que definam o objeto em questatildeo
As abordagens atuais focam-se em Modelaccedilatildeo invertida de ambientes urbanos no entanto
Vanegas et al [VGDA+12] demonstram uma metodologia de aproximaccedilatildeo de gramaacuteticas capazes
de representar para aleacutem de edifiacutecios sistemas complexos de vegetaccedilatildeo aproximados a um objeto
jaacute existente
9
Estado da Arte e Trabalhos Relacionados
22 Modelaccedilatildeo 3D Manual
Para a produccedilatildeo de objetos tridimensionais os modeladores utilizam ferramentas dedicadas
que lhes datildeo um controlo total sobre o modelo a ser construiacutedo Estes variam em metaacuteforas de
interface e em puacuteblico alvo Nesta secccedilatildeo vatildeo ser abordadas as teacutecnicas de modelaccedilatildeo atualmente
utilizadas por estas ferramentas e seratildeo listadas as ferramentas existentes no mercado e as respeti-
vas funcionalidades principais
221 Teacutecnicas de Modelaccedilatildeo Manual
2211 Polygon Modelling
Polygon Modelling eacute uma abordagem para a representaccedilatildeo de superfiacutecies tridimensionais utili-
zando poliacutegonos estes satildeo representados por veacutertices e arestas e em grupos formam uma Polygon
Mesh que pode ser armazenada de muacuteltiplas formas [TM06 Bau72 Smi06] Eacute possiacutevel criar ma-
lhas veacutertice a veacutertice manualmente No entanto eacute comum a respetiva manipulaccedilatildeo em software
graacutefico concedendo aos modeladores ferramentas interativas como Blender Autodesk Maya e 3D
Studio Max
Figura 25 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14]
Uma das abordagens mais comuns eacute denominada Box Modelling na qual uma forma geomeacute-
trica considerada uma primitiva (ie cubo esfera cilindro) eacute esculpida iterativamente por pas-
sos de subdivisatildeo do objeto e subsequente manipulaccedilatildeo da geometria ateacute se obter o objeto final
[Jon02 sub14] A figura 25 demonstra da teacutecnica Box Modelling para a modelaccedilatildeo de uma face
Esta abordagem pode ser considerada uma abordagem Subtrativa pois eacute atraveacutes da reduccedilatildeo de um
objeto base que eacute obtido o objeto desejado
10
Estado da Arte e Trabalhos Relacionados
O polygon modelling caracteriza-se pelo controlo direto sobre a colocaccedilatildeo de cada veacutertice de
uma superfiacutecie permitindo dessa forma um controlo fino e preciso sobre o resultado a produzir
2212 NURBS
NURBS ou Non-uniform rational B-spline eacute uma generalizaccedilatildeo de B-Splines e Curvas de Beacute-
zier [KR79 Cab92] um modelo matemaacutetico usado para representar curvas e superfiacutecies com
grande precisatildeo e flexibilidade (Figura 26) Eacute principalmente utilizado em aacutereas da computaccedilatildeo
graacutefica (CAD CAM CAE) onde a precisatildeo dos modelos obtidos eacute muito importante Inicialmente
estudada por Matemaacuteticos como I J Schoenberg [Cob84] foi aplicada em sistemas CAD para a
modelaccedilatildeo na induacutestria Automoacutevel [Beacute83 Beacutez81 Bez68]
Figura 26 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modeloNURBS
2213 Digital Sculpting
Digital Sculpting eacute a adaptaccedilatildeo de teacutecnicas utilizadas para moldar materiais como o barro agrave
modelaccedilatildeo 3D Estas ferramentas permitem ao modelador empurrar puxar polir vincare
adicionar ou remover volume Perry et al [PF01] introduziram Kizamu um dos primeiros passos
na aacuterea do Digital Sculpting Os modelos satildeo representados no que eacute chamado de Adaptively Sam-
pled Distance Fields (ADF) [FPRJ00] que permite representar dados volumeacutetricos que tornam o
processo de Digital Sculpting possiacutevel
222 Ferramentas de Modelaccedilatildeo 3D
2221 Blender
O Blender [ble15a] eacute uma ferramenta profissional de modelaccedilatildeo de coacutedigo aberto desen-
volvida pela Blender Foundation Suporta uma grande variedade de primitivas geomeacutetricas in-
11
Estado da Arte e Trabalhos Relacionados
Figura 27 Interface da ferramenta Blender
cluiacutendo Polygon Meshes curvas de Bezier superfiacutecies NURBS Metaballs e Digital Sculpting
Esta destaca-se por ser gratuita e pela facilidade de criar extensotildees [ble15b] usando a API Python
existente [ble15c] que permite adicionar novas funcionalidades agrave ferramenta
2222 Autodesk Maya
Figura 28 Interface da ferramenta Autodesk Maya
O Autodesk Maya [Aut15b] eacute uma ferramenta de produccedilatildeo de conteuacutedo 3D utilizada nas induacutes-
trias do cinema televisatildeo videojogos e arquitetura Eacute de coacutedigo fechado e a respetiva utilizaccedilatildeo
requer que o utilizador possua uma licenccedila Tal como o Blender o Maya daacute aos modeladores
ferramentas para estes criarem objetos de uma forma interativa 28 Apesar de ser uma ferramenta
versaacutetil e capaz de satisfazer as necessidades de todas induacutestrias acima referidas o Autodesk
Maya tende a ser mais utilizado pela induacutestria do Cinema devido agrave vasta customizaccedilatildeo possiacutevel de
aspetos importantes para esta induacutestria como Animaccedilatildeo e VFX [Aut15c]
12
Estado da Arte e Trabalhos Relacionados
2223 Autodesk 3D Studio Max
O 3D Studio Max [Aut15a] eacute outra ferramenta da Autodesk em muitos aspetos semelhante
ao Maya No entanto o 3DS Max estaacute apenas disponiacutevel para maacutequinas de sistema operativo
Windows e sempre foi mais utilizado pela induacutestria dos videojogos para a criaccedilatildeo de modelos 3D
Tal como o Autodesk Maya este dispotildee de poderosos motores de renderizaccedilatildeo Ray Tracing
2224 Zbrush
O Zbrush [Pix15] eacute uma ferramenta de modelaccedilatildeo 3D baseada nos conceitos de Digital Mo-
delling Daacute ao artista muacuteltiplas Brushes que permitem manipular o objeto a ser definido com
paradigmas transportados de outras aacutereas artiacutesticas Pode tornar mais acessiacutevel para um utilizador
pouco experiente com alguns paradigmas da Computaccedilatildeo Graacutefica a modelaccedilatildeo de objetos com
consideraacutevel detalhe e liberdade artiacutestica [Spe11]
23 Sumaacuterio
Apoacutes o levantamento do estado da arte eacute possiacutevel constatar que as ferramentas de modelaccedilatildeo
manual satildeo a escolha de eleiccedilatildeo para contextos em que o modelador deseja o maior niacutevel controlo
possiacutevel sobre o objeto a ser produzido No entanto considerando ferramentas de modelaccedilatildeo
procedimental tem existido um esforccedilo por parte desta comunidade para tornar a correspondente
experiecircncia de utilizaccedilatildeo mais acessiacutevel a utilizadores pouco familiarizados com o funcionamento
do mesmo Por enquanto a utilizaccedilatildeo deste tipo de ferramentas ainda requer que o conteuacutedo
seja criado em ferramentas dedicadas completamente separadas das ferramentas tradicionais (ie
Maya Blender) essenciais para o trabalho artiacutestico levando a quebras no fluxo de trabalho
13
Estado da Arte e Trabalhos Relacionados
14
Capiacutetulo 3
Metodologia
Com os desenvolvimentos atuais na aacuterea de modelaccedilatildeo procedimental apresentados no capiacute-
tulo 2 eacute possiacutevel verificar que as soluccedilotildees de MP existentes permitem produzir variados tipos de
conteuacutedo tais como terrenos vegetaccedilatildeo edifiacutecios estradas e cidades por outro lado as respeti-
vas integraccedilotildees em ambientes de modelaccedilatildeo manual satildeo algo limitadas ou apenas disponiacuteveis em
ferramentas externas especializadas num uacutenico tipo de conteuacutedo
Da mesma forma como verificado em 21 foram efetuadas vaacuterias tentativas pela comunidade
envolvida em geraccedilatildeo procedimental no sentido a melhorar a interaccedilatildeo com ferramentas dedica-
das agrave geraccedilatildeo procedimental no entanto existe ainda uma grande margem para avanccedilo de uma
integraccedilatildeo geneacuterica destes processos numa ferramenta de modelaccedilatildeo manual Devido agrave falta de
soluccedilotildees que se integrem de forma transparente e acessiacutevel em ambientes de modelaccedilatildeo manual
pretende-se apresentar uma soluccedilatildeo com o objetivo de interligar as duas abordagens neste capiacute-
tulo Inicialmente seraacute apresentada em pormenor a arquitetura da soluccedilatildeo de seguida o protocolo
de comunicaccedilatildeo entre os dois ambientes de modelaccedilatildeo e finalmente seraacute proposto um meacutetodo de
trabalho no qual seraacute descrita a interaccedilatildeo ideal entre o modelador e a soluccedilatildeo proposta
31 Meacutetodo de Trabalho
Numa interaccedilatildeo ideal o modelador teria controlo absoluto sobre os meacutetodos de geraccedilatildeo proce-
dimental e seria possiacutevel modelar procedimentalmente sobre alteraccedilotildees manuais realizadas sobre
o objeto No entanto nem sempre eacute desejado esse niacutevel de controlo e interligaccedilatildeo entre as aborda-
gens Imaginando a modelaccedilatildeo de um edifiacutecio este eacute construiacutedo segundo meacutetodos procedimentais
e recebe como entrada um poliacutegono que delimita a fundaccedilatildeo assim como paracircmetros numeacutericos e
booleanos que definem a geometria resultante Depois de modelado procedimentalmente o objeto
eacute adicionado ao ambiente de modelaccedilatildeo manual onde o modelador pode realizar alteraccedilotildees em
detalhes na geometria ou mesmo alteraccedilotildees profundas na geometria do mesmo
15
Metodologia
Considerando uma situaccedilatildeo em que o modelador realizou alteraccedilotildees profundas na geometria
produzida como por exemplo a reparticcedilatildeo de uma das fachadas do edifiacutecio em trecircs fachadas
Assim que realizadas estas alteraccedilotildees o utilizador pretende alterar a altura do edifiacutecio alterando o
paracircmetro correspondente e requisitando uma atualizaccedilatildeo Para ser possiacutevel manter as alteraccedilotildees
realizadas manualmente e em simultacircneo respeitar as regras definidas pela geraccedilatildeo procedimen-
tal seria necessaacuterio converter estas alteraccedilotildees em regras possiacuteveis de definir no escopo do ambiente
de geraccedilatildeo procedimental
De qualquer das formas as alteraccedilotildees realizadas no ponto anterior podem simplesmente natildeo
fazer sentido apoacutes a aplicaccedilatildeo sobre o objeto que foi reproduzido seguindo as regras definias
por um procedimento Devido a esta limitaccedilatildeo eacute assumido que assim que o utilizador requisita
uma nova execuccedilatildeo de um procedimento o qual natildeo tem problemas em descartar as alteraccedilotildees
executadas manualmente sobre o objeto em questatildeo
Tendo em consideraccedilatildeo esta limitaccedilatildeo eacute possiacutevel estruturar um fluxo de trabalho que melhor
explore as vantagens e limitaccedilotildees de ambas as abordagens de geraccedilatildeo de conteuacutedo tridimensional
O utilizador tem uma panoacuteplia de conteuacutedos procedimentais ao seu dispor que podem ser definidas
via paracircmetros numeacutericos e geomeacutetricos O conteuacutedo eacute adicionado ao ambiente de modelaccedilatildeo ma-
nual e os paracircmetros podem ainda ser editados alterados ao custo de que as modificaccedilotildees manuais
realizadas sobre o objeto sejam descartadas
32 Metodologias de Interaccedilatildeo com o Utilizador
Em relaccedilatildeo agrave interaccedilatildeo com o utilizador foram estudadas trecircs abordagens para a interaccedilatildeo com
meacutetodos de geraccedilatildeo procedimental em ambiente de modelaccedilatildeo manual
321 Modificadores
O conceito de modificadores eacute jaacute utilizado em ambientes de modelaccedilatildeo manual eg no Blen-
der [Bap14 Ble15e] onde satildeo utilizados para realizar operaccedilotildees sobre objetos na cena sem destruir
a geometria subjacente apenas modificam a forma como os objetos satildeo percecionados pelo motor
de renderizaccedilatildeo Esta abordagem eacute uacutetil em situaccedilotildees onde o procedimento a ser executado en-
volve modificaccedilotildees sobre uma geometria base como tal permitindo realizar muacuteltiplas alteraccedilotildees
sobre um objeto podendo estas ser facilmente canceladas recuperando o objeto original No en-
tanto nem todos os recursos de geraccedilatildeo procedimental incidem sobre modificaccedilatildeo de geometria
Os meios de geraccedilatildeo procedimental em muitas situaccedilotildees produzem objetos e cenaacuterios uacutenicos e
independentes de qualquer geometria de entrada
322 Grafos
A abordagem de interaccedilatildeo via grafos eacute atualmente utilizada num ambiente de modelaccedilatildeo ma-
nual para a ediccedilatildeo de materiais [Ble15d] Tambeacutem chamada de Flow-Based Programming esta
16
Metodologia
abordagem permite apresentar ao utilizador os procedimentos como uma caixa negra com pos-
siacuteveis entradas e saiacutedas representadas como ligaccedilotildees de fluxo A correspondente utilizaccedilatildeo na
interaccedilatildeo com geraccedilatildeo procedimental pode permitir o encadeamento de muacuteltiplos procedimentos
No entanto a abordagem pode ser mais trabalhosa para o utilizador introduzindo um niacutevel de
interaccedilatildeo adicional para cada objeto introduzido na cena
323 Funccedilotildees
Esta abordagem disponibiliza ao utilizador cada recurso de geraccedilatildeo procedimental como uma
funccedilatildeo disponiacutevel a qualquer momento na interface da ferramenta de modelaccedilatildeo manual Aquando
da respetiva invocaccedilatildeo satildeo requisitados aos utilizadores os paracircmetros necessaacuterios agrave execuccedilatildeo
A abordagem em causa eacute potencialmente a mais faacutecil de adotar por parte dos utilizadores de
ferramentas de modelaccedilatildeo manual Devido agrave simplicidade na interaccedilatildeo assim como a reduzida
necessidade de tempo e recursos para a implementaccedilatildeo esta foi a abordagem de interaccedilatildeo utilizada
na soluccedilatildeo desenvolvida
33 Arquitetura da Soluccedilatildeo
Para abordar este problema eacute proposta a utilizaccedilatildeo de duas aplicaccedilotildees jaacute presentes no mer-
cado Uma aplicaccedilatildeo dedicada agrave modelaccedilatildeo procedimental e uma aplicaccedilatildeo de modelaccedilatildeo manual
Foi escolhida esta abordagem na medida em que eacute possiacutevel utilizar duas aplicaccedilotildees jaacute existentes
sendo possiacutevel dessa forma aproveitar os pontos fortes de cada soluccedilatildeo com o intuito de otimi-
zar o processo de criaccedilatildeo de novos cenaacuterios e conteuacutedo tridimensional Esta abordagem pode ser
representada como uma soluccedilatildeo estruturada numa arquitetura Cliente-Servidor em que a aplica-
ccedilatildeo de geraccedilatildeo procedimental eacute capaz de fornecer serviccedilos de geraccedilatildeo de conteuacutedo a um ou mais
clientes de modelaccedilatildeo Esta abordagem interliga as duas aplicaccedilotildees atraveacutes de um protocolo de
comunicaccedilatildeo Este permite ao utilizador da ferramenta de modelaccedilatildeo manual requisitar a produ-
ccedilatildeo de conteuacutedo seguindo os valores impostos pelo utilizador nos paracircmetros do procedimento
requisitado O protocolo eacute descrito em maior detalhe na secccedilatildeo 34
331 Vantagens
Faacutecil integraccedilatildeo em diferentes plataformas Devido agrave arquitetura ser baseada na comunicaccedilatildeo
entre duas aplicaccedilotildees por um protocolo de comunicaccedilatildeo geneacuterico eacute com alguma facili-
dade que se realiza a interligaccedilatildeo com diferentes soluccedilotildees de geraccedilatildeo procedimental ou de
modelaccedilatildeo manual Sendo assim possiacutevel a expansatildeo para novos ambientes de modelaccedilatildeo
manual ou mesmo introduzir novas soluccedilotildees de geraccedilatildeo procedimental
Escalabilidade A arquitetura proposta poderaacute permitir que esta seja implementada de modo a que
um servidor central de geraccedilatildeo procedimental sirva por exemplo num ambiente empresa-
rial como um repositoacuterio de recursos de geraccedilatildeo de conteuacutedos desta forma permitindo
17
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Introduccedilatildeo
4
Capiacutetulo 2
Estado da Arte e TrabalhosRelacionados
Neste capiacutetulo seraacute realizada uma revisatildeo bibliograacutefica que visa apresentar todos os avanccedilos
realizados nas aacutereas da interaccedilatildeo com os meacutetodos de geraccedilatildeo procedimental Seratildeo apresentados
os tipos de conteuacutedo passiacuteveis de serem produzidos por meio destes meacutetodos bem como as teacutec-
nicas utilizadas para a respetiva interaccedilatildeo e geraccedilatildeo Iratildeo tambeacutem ser apresentadas as abordagens
existentes para uma modelaccedilatildeo manual e as ferramentas existentes no mercado
21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundosvirtuais
O paradigma de interaccedilatildeo com meacutetodos de geraccedilatildeo procedimental eacute tradicionalmente funci-
onal Cada procedimento pode ser considerado uma caixa negra de operaccedilotildees que dependendo
de certos valores de entrada produz um ou mais resultados A interaccedilatildeo com estes nem sempre
eacute a mais intuitiva pois para atingir o resultado desejado envolve em repetidas tentativa e erro por
parte do utilizador No entanto em anos recentes tem existido um avanccedilo consideraacutevel nesta aacuterea
tentado conceder ao utilizador maior controlo sobre os meacutetodos de geraccedilatildeo procedimental com
abordagens como Sketch-based editores visuais e Modelaccedilatildeo Procedimental Invertida
211 Teacutecnicas Sketch-based
Esta abordagem tenta aproximar o tipo de interaccedilatildeo com que os principais utilizadores de
meacutetodos de Modelaccedilatildeo Procedimental estatildeo familiarizados Noccedilotildees como Brushes e Sketches satildeo
alguns dos conceitos mais populares entre designers profissionais
5
Estado da Arte e Trabalhos Relacionados
2111 Terrenos
De Carpentier et al [dCB09] propuseram um meacutetodo de ediccedilatildeo de terrenos no qual eacute dada ao
utilizador a possibilidade de alterar o heightfield atraveacutes de procedural brushes tentando combinar
a interaccedilatildeo manual localizada com a modificaccedilatildeo da parametrizaccedilatildeo por completo de heightfields
Esta abordagem eacute capaz de produzir alteraccedilotildees a tempo real graccedilas agrave respetiva implementaccedilatildeo
com shaders
Smelik et al [STdKB10] seguindo a respetiva proposta de modelaccedilatildeo de mundos virtuais
[STdKB08] propotildeem a utilizaccedilatildeo da abordagem Procedural sketching e demonstram-na num
protoacutetipo intitulado de SketchaWorld Esta abordagem eacute dividida em dois principais modos de
interaccedilatildeo (Figura 21) Landscape Mode e Feature Mode
Figura 21 Procedural sketching of virtual worlds por Smelik et al [STdKB10]
No primeiro o utilizador interage com uma vista top-down do terreno divido em grelha e eacute
capaz de definir a informaccedilatildeo geoloacutegica de cada ceacutelula atraveacutes do uso de Brushes Em Feature
Mode o utilizador manipula pontos de controlo correspondendo a vetores ou poliacutegonos que deli-
mitam a localizaccedilatildeo de cidades rios e vegetaccedilatildeo A ferramenta fornece feedback da construccedilatildeo do
terreno a um ritmo consideraacutevel para uma interaccedilatildeo fluida Esta tambeacutem dispotildee de funcionalida-
des como undo e redo para uma melhorar a interaccedilatildeo entre o utilizador e a ferramenta permitindo
assim a introduccedilatildeo de alteraccedilotildees e caso estas natildeo sejam desejadas pelo utilizador estas podem
ser desfeitas rapidamente Gain et al [GMSe09] propotildeem uma soluccedilatildeo que permite ao utilizador
esboccedilar as silhuetas e limites de corpos montanhosos a serem gerados
6
Estado da Arte e Trabalhos Relacionados
2112 Estradas
Num esforccedilo de melhorar a interaccedilatildeo com path layouts Singh et al [SM08] desenvolveram a
ferramenta Drive que permite a conceptualizaccedilatildeo de redes rodoviaacuterias tridimensionais por meio
de esboccedilos que satildeo posteriormente aproximados a clotoacuteides (Curvas em que o raio varia line-
armente) Com esta abordagem eacute possiacutevel produzir itineraacuterios em que as transiccedilotildees entre raios
de curvatura satildeo lineares tornando-os assim adequados para a conduccedilatildeo A ferramenta tambeacutem
introduz Terrain sensitive sketching que por meios automaacuteticos coloca sinalizaccedilatildeo no percurso e
vegetaccedilatildeo nas redondezas
2113 Vegetaccedilatildeo
Figura 22 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et al[IOI06b IOI06a]
O trabalho de Ijiri et al [IOI06b IOI06a] apresenta uma teacutecnica que atraveacutes de traccedilados defi-
nidos pelo utilizador (Figura 22) permite a manipulaccedilatildeo da direccedilatildeo de crescimento de vegetaccedilatildeo
produzida por L-Systems uma abordagem jaacute muito estudada para a criaccedilatildeo de vegetaccedilatildeo pro-
posta por Lindenmayer [Lin68] como um tipo de gramaacutetica formal capaz de representar padrotildees
e geometria fractal existente na vegetaccedilatildeo Em 1988 foi proposto por Prusinkiewicz [PLH88] a
utilizaccedilatildeo de L-systems para a modelaccedilatildeo de vegetaccedilatildeo Ao longo das ultimas deacutecadas tecircm sido
realizados avanccedilos consideraacuteveis na produccedilatildeo de vegetaccedilatildeo realiacutestica [WP95] e a respetiva inte-
raccedilatildeo com o seu meio ambiente [MP96 Pru00] tentado assim produzir vegetaccedilatildeo que melhor
simule o comportamento fiacutesico e bioloacutegico de vegetaccedilatildeo real
Mais recentemente o trabalho de Palubicky et al [PHL+09] foi expandido e transportado
para uma aplicaccedilatildeo para dispositivos iPad em que o modelador tem um controlo fino sobre o
crescimento de uma aacutervore Utilizando o conceito de tree self-organization Longay et al criaram
7
Estado da Arte e Trabalhos Relacionados
a ferramenta TreeSketch 23 que estimula a competiccedilatildeo entre os ramos de uma aacutervore por espaccedilo
e luz dentro dos paracircmetros e inputs visuais dados pelo utilizador [LRBP12]
Figura 23 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch
212 Editores Visuais
Numa tentativa de melhorar a interaccedilatildeo com modelaccedilatildeo procedimental baseada em gramaacuteticas
[WWSR03 MWH+06] Lipp et al propuseram uma abordagem que permite a manipulaccedilatildeo direta
do resultado produzido por uma gramaacutetica O utilizador pode manipular diretamente no objeto as
respetivas dimensotildees e configuraccedilotildees [LWW08]
Mais recentemente Krecklau et al [KK12] introduziram uma abordagem que permite a ge-
raccedilatildeo de cenas a partir de primitivas de alto niacutevel e a correspondente manipulaccedilatildeo por interaccedilatildeo
direta na cena consequentemente permitindo a utilizadores menos experientes a utilizaccedilatildeo de
gramaacuteticas procedimentais complexas sem a necessidade de interaccedilatildeo textual com as mesmas
2121 Visual Node Based
Editores Visual Node Based satildeo utilizados em muitas aplicaccedilotildees comercias como meio de
dar ao utilizador feedback visual do fluxo de informaccedilatildeo Encontra-se em editores de shaders
[Hol15 Aut15b] editores de animaccedilotildees [Tec15] e em editores de texturas [Cod15] A vasta uti-
lizaccedilatildeo da teacutecnica na aacuterea de produccedilatildeo de conteuacutedo 3D por utilizadores com pouca experiecircncia
de programaccedilatildeo levou a que investigadores a utilizassem para a especificaccedilatildeo de gramaacuteticas de
produccedilatildeo
Nesse contexto Patow [Pat12] desenvolveu uma soluccedilatildeo para a construccedilatildeo e manipulaccedilatildeo de
gramaacuteticas por meio de um editor visual onde noacutes que representam operaccedilotildees geomeacutetricas dos
correspondentes antecessores transmitem o resultado aos noacutes sucessores Na mesma publica-
ccedilatildeo Patow realccedila a importacircncia que esta abordagem acarreta para a modelaccedilatildeo procedimental de
edifiacutecios e admite que existe ainda muito potencial por explorar
8
Estado da Arte e Trabalhos Relacionados
Mais recentemente o trabalho de Silva et al [SMBC13] apresenta uma metodologia de edi-
ccedilatildeo em que grafos podem ser encapsulados em noacutes designados Component capazes de representar
construccedilotildees complexas Os noacutes podem ser facilmente introduzidos noutros grafos e editados por
meio de filtros de fluxo colocados nas arestas ou por restriccedilotildees que auxiliam a especificar a utili-
zaccedilatildeo dos noacutes (Figura 24)
Figura 24 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13]
213 Modelaccedilatildeo Procedimental Invertida
Inverse PM eacute uma teacutecnica em que um dado modelo de entrada eacute aproximado a uma represen-
taccedilatildeo procedimental
Aliaga et al [ARB07] apresenta a reconstruccedilatildeo de edifiacutecios por meio de fotografias Nesta
abordagem o utilizador define os limites das fachadas do edifiacutecio criando uma representaccedilatildeo
minimalista De seguida eacute automaticamente aproximada uma gramaacutetica que melhor representa
o edifiacutecio em questatildeo Com os trabalhos de Šrsquotava et al [ŠBM+10] na parametrizaccedilatildeo de arte
vetorial 2D e de Mitra et al [MGP06] em encontrar simetrias em objetos tridimensionais Bokeloh
et al [BWS10] aplica estes conceitos para a descoberta de simetrias nos objetos e a consequente
aproximaccedilatildeo de gramaacuteticas que definam o objeto em questatildeo
As abordagens atuais focam-se em Modelaccedilatildeo invertida de ambientes urbanos no entanto
Vanegas et al [VGDA+12] demonstram uma metodologia de aproximaccedilatildeo de gramaacuteticas capazes
de representar para aleacutem de edifiacutecios sistemas complexos de vegetaccedilatildeo aproximados a um objeto
jaacute existente
9
Estado da Arte e Trabalhos Relacionados
22 Modelaccedilatildeo 3D Manual
Para a produccedilatildeo de objetos tridimensionais os modeladores utilizam ferramentas dedicadas
que lhes datildeo um controlo total sobre o modelo a ser construiacutedo Estes variam em metaacuteforas de
interface e em puacuteblico alvo Nesta secccedilatildeo vatildeo ser abordadas as teacutecnicas de modelaccedilatildeo atualmente
utilizadas por estas ferramentas e seratildeo listadas as ferramentas existentes no mercado e as respeti-
vas funcionalidades principais
221 Teacutecnicas de Modelaccedilatildeo Manual
2211 Polygon Modelling
Polygon Modelling eacute uma abordagem para a representaccedilatildeo de superfiacutecies tridimensionais utili-
zando poliacutegonos estes satildeo representados por veacutertices e arestas e em grupos formam uma Polygon
Mesh que pode ser armazenada de muacuteltiplas formas [TM06 Bau72 Smi06] Eacute possiacutevel criar ma-
lhas veacutertice a veacutertice manualmente No entanto eacute comum a respetiva manipulaccedilatildeo em software
graacutefico concedendo aos modeladores ferramentas interativas como Blender Autodesk Maya e 3D
Studio Max
Figura 25 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14]
Uma das abordagens mais comuns eacute denominada Box Modelling na qual uma forma geomeacute-
trica considerada uma primitiva (ie cubo esfera cilindro) eacute esculpida iterativamente por pas-
sos de subdivisatildeo do objeto e subsequente manipulaccedilatildeo da geometria ateacute se obter o objeto final
[Jon02 sub14] A figura 25 demonstra da teacutecnica Box Modelling para a modelaccedilatildeo de uma face
Esta abordagem pode ser considerada uma abordagem Subtrativa pois eacute atraveacutes da reduccedilatildeo de um
objeto base que eacute obtido o objeto desejado
10
Estado da Arte e Trabalhos Relacionados
O polygon modelling caracteriza-se pelo controlo direto sobre a colocaccedilatildeo de cada veacutertice de
uma superfiacutecie permitindo dessa forma um controlo fino e preciso sobre o resultado a produzir
2212 NURBS
NURBS ou Non-uniform rational B-spline eacute uma generalizaccedilatildeo de B-Splines e Curvas de Beacute-
zier [KR79 Cab92] um modelo matemaacutetico usado para representar curvas e superfiacutecies com
grande precisatildeo e flexibilidade (Figura 26) Eacute principalmente utilizado em aacutereas da computaccedilatildeo
graacutefica (CAD CAM CAE) onde a precisatildeo dos modelos obtidos eacute muito importante Inicialmente
estudada por Matemaacuteticos como I J Schoenberg [Cob84] foi aplicada em sistemas CAD para a
modelaccedilatildeo na induacutestria Automoacutevel [Beacute83 Beacutez81 Bez68]
Figura 26 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modeloNURBS
2213 Digital Sculpting
Digital Sculpting eacute a adaptaccedilatildeo de teacutecnicas utilizadas para moldar materiais como o barro agrave
modelaccedilatildeo 3D Estas ferramentas permitem ao modelador empurrar puxar polir vincare
adicionar ou remover volume Perry et al [PF01] introduziram Kizamu um dos primeiros passos
na aacuterea do Digital Sculpting Os modelos satildeo representados no que eacute chamado de Adaptively Sam-
pled Distance Fields (ADF) [FPRJ00] que permite representar dados volumeacutetricos que tornam o
processo de Digital Sculpting possiacutevel
222 Ferramentas de Modelaccedilatildeo 3D
2221 Blender
O Blender [ble15a] eacute uma ferramenta profissional de modelaccedilatildeo de coacutedigo aberto desen-
volvida pela Blender Foundation Suporta uma grande variedade de primitivas geomeacutetricas in-
11
Estado da Arte e Trabalhos Relacionados
Figura 27 Interface da ferramenta Blender
cluiacutendo Polygon Meshes curvas de Bezier superfiacutecies NURBS Metaballs e Digital Sculpting
Esta destaca-se por ser gratuita e pela facilidade de criar extensotildees [ble15b] usando a API Python
existente [ble15c] que permite adicionar novas funcionalidades agrave ferramenta
2222 Autodesk Maya
Figura 28 Interface da ferramenta Autodesk Maya
O Autodesk Maya [Aut15b] eacute uma ferramenta de produccedilatildeo de conteuacutedo 3D utilizada nas induacutes-
trias do cinema televisatildeo videojogos e arquitetura Eacute de coacutedigo fechado e a respetiva utilizaccedilatildeo
requer que o utilizador possua uma licenccedila Tal como o Blender o Maya daacute aos modeladores
ferramentas para estes criarem objetos de uma forma interativa 28 Apesar de ser uma ferramenta
versaacutetil e capaz de satisfazer as necessidades de todas induacutestrias acima referidas o Autodesk
Maya tende a ser mais utilizado pela induacutestria do Cinema devido agrave vasta customizaccedilatildeo possiacutevel de
aspetos importantes para esta induacutestria como Animaccedilatildeo e VFX [Aut15c]
12
Estado da Arte e Trabalhos Relacionados
2223 Autodesk 3D Studio Max
O 3D Studio Max [Aut15a] eacute outra ferramenta da Autodesk em muitos aspetos semelhante
ao Maya No entanto o 3DS Max estaacute apenas disponiacutevel para maacutequinas de sistema operativo
Windows e sempre foi mais utilizado pela induacutestria dos videojogos para a criaccedilatildeo de modelos 3D
Tal como o Autodesk Maya este dispotildee de poderosos motores de renderizaccedilatildeo Ray Tracing
2224 Zbrush
O Zbrush [Pix15] eacute uma ferramenta de modelaccedilatildeo 3D baseada nos conceitos de Digital Mo-
delling Daacute ao artista muacuteltiplas Brushes que permitem manipular o objeto a ser definido com
paradigmas transportados de outras aacutereas artiacutesticas Pode tornar mais acessiacutevel para um utilizador
pouco experiente com alguns paradigmas da Computaccedilatildeo Graacutefica a modelaccedilatildeo de objetos com
consideraacutevel detalhe e liberdade artiacutestica [Spe11]
23 Sumaacuterio
Apoacutes o levantamento do estado da arte eacute possiacutevel constatar que as ferramentas de modelaccedilatildeo
manual satildeo a escolha de eleiccedilatildeo para contextos em que o modelador deseja o maior niacutevel controlo
possiacutevel sobre o objeto a ser produzido No entanto considerando ferramentas de modelaccedilatildeo
procedimental tem existido um esforccedilo por parte desta comunidade para tornar a correspondente
experiecircncia de utilizaccedilatildeo mais acessiacutevel a utilizadores pouco familiarizados com o funcionamento
do mesmo Por enquanto a utilizaccedilatildeo deste tipo de ferramentas ainda requer que o conteuacutedo
seja criado em ferramentas dedicadas completamente separadas das ferramentas tradicionais (ie
Maya Blender) essenciais para o trabalho artiacutestico levando a quebras no fluxo de trabalho
13
Estado da Arte e Trabalhos Relacionados
14
Capiacutetulo 3
Metodologia
Com os desenvolvimentos atuais na aacuterea de modelaccedilatildeo procedimental apresentados no capiacute-
tulo 2 eacute possiacutevel verificar que as soluccedilotildees de MP existentes permitem produzir variados tipos de
conteuacutedo tais como terrenos vegetaccedilatildeo edifiacutecios estradas e cidades por outro lado as respeti-
vas integraccedilotildees em ambientes de modelaccedilatildeo manual satildeo algo limitadas ou apenas disponiacuteveis em
ferramentas externas especializadas num uacutenico tipo de conteuacutedo
Da mesma forma como verificado em 21 foram efetuadas vaacuterias tentativas pela comunidade
envolvida em geraccedilatildeo procedimental no sentido a melhorar a interaccedilatildeo com ferramentas dedica-
das agrave geraccedilatildeo procedimental no entanto existe ainda uma grande margem para avanccedilo de uma
integraccedilatildeo geneacuterica destes processos numa ferramenta de modelaccedilatildeo manual Devido agrave falta de
soluccedilotildees que se integrem de forma transparente e acessiacutevel em ambientes de modelaccedilatildeo manual
pretende-se apresentar uma soluccedilatildeo com o objetivo de interligar as duas abordagens neste capiacute-
tulo Inicialmente seraacute apresentada em pormenor a arquitetura da soluccedilatildeo de seguida o protocolo
de comunicaccedilatildeo entre os dois ambientes de modelaccedilatildeo e finalmente seraacute proposto um meacutetodo de
trabalho no qual seraacute descrita a interaccedilatildeo ideal entre o modelador e a soluccedilatildeo proposta
31 Meacutetodo de Trabalho
Numa interaccedilatildeo ideal o modelador teria controlo absoluto sobre os meacutetodos de geraccedilatildeo proce-
dimental e seria possiacutevel modelar procedimentalmente sobre alteraccedilotildees manuais realizadas sobre
o objeto No entanto nem sempre eacute desejado esse niacutevel de controlo e interligaccedilatildeo entre as aborda-
gens Imaginando a modelaccedilatildeo de um edifiacutecio este eacute construiacutedo segundo meacutetodos procedimentais
e recebe como entrada um poliacutegono que delimita a fundaccedilatildeo assim como paracircmetros numeacutericos e
booleanos que definem a geometria resultante Depois de modelado procedimentalmente o objeto
eacute adicionado ao ambiente de modelaccedilatildeo manual onde o modelador pode realizar alteraccedilotildees em
detalhes na geometria ou mesmo alteraccedilotildees profundas na geometria do mesmo
15
Metodologia
Considerando uma situaccedilatildeo em que o modelador realizou alteraccedilotildees profundas na geometria
produzida como por exemplo a reparticcedilatildeo de uma das fachadas do edifiacutecio em trecircs fachadas
Assim que realizadas estas alteraccedilotildees o utilizador pretende alterar a altura do edifiacutecio alterando o
paracircmetro correspondente e requisitando uma atualizaccedilatildeo Para ser possiacutevel manter as alteraccedilotildees
realizadas manualmente e em simultacircneo respeitar as regras definidas pela geraccedilatildeo procedimen-
tal seria necessaacuterio converter estas alteraccedilotildees em regras possiacuteveis de definir no escopo do ambiente
de geraccedilatildeo procedimental
De qualquer das formas as alteraccedilotildees realizadas no ponto anterior podem simplesmente natildeo
fazer sentido apoacutes a aplicaccedilatildeo sobre o objeto que foi reproduzido seguindo as regras definias
por um procedimento Devido a esta limitaccedilatildeo eacute assumido que assim que o utilizador requisita
uma nova execuccedilatildeo de um procedimento o qual natildeo tem problemas em descartar as alteraccedilotildees
executadas manualmente sobre o objeto em questatildeo
Tendo em consideraccedilatildeo esta limitaccedilatildeo eacute possiacutevel estruturar um fluxo de trabalho que melhor
explore as vantagens e limitaccedilotildees de ambas as abordagens de geraccedilatildeo de conteuacutedo tridimensional
O utilizador tem uma panoacuteplia de conteuacutedos procedimentais ao seu dispor que podem ser definidas
via paracircmetros numeacutericos e geomeacutetricos O conteuacutedo eacute adicionado ao ambiente de modelaccedilatildeo ma-
nual e os paracircmetros podem ainda ser editados alterados ao custo de que as modificaccedilotildees manuais
realizadas sobre o objeto sejam descartadas
32 Metodologias de Interaccedilatildeo com o Utilizador
Em relaccedilatildeo agrave interaccedilatildeo com o utilizador foram estudadas trecircs abordagens para a interaccedilatildeo com
meacutetodos de geraccedilatildeo procedimental em ambiente de modelaccedilatildeo manual
321 Modificadores
O conceito de modificadores eacute jaacute utilizado em ambientes de modelaccedilatildeo manual eg no Blen-
der [Bap14 Ble15e] onde satildeo utilizados para realizar operaccedilotildees sobre objetos na cena sem destruir
a geometria subjacente apenas modificam a forma como os objetos satildeo percecionados pelo motor
de renderizaccedilatildeo Esta abordagem eacute uacutetil em situaccedilotildees onde o procedimento a ser executado en-
volve modificaccedilotildees sobre uma geometria base como tal permitindo realizar muacuteltiplas alteraccedilotildees
sobre um objeto podendo estas ser facilmente canceladas recuperando o objeto original No en-
tanto nem todos os recursos de geraccedilatildeo procedimental incidem sobre modificaccedilatildeo de geometria
Os meios de geraccedilatildeo procedimental em muitas situaccedilotildees produzem objetos e cenaacuterios uacutenicos e
independentes de qualquer geometria de entrada
322 Grafos
A abordagem de interaccedilatildeo via grafos eacute atualmente utilizada num ambiente de modelaccedilatildeo ma-
nual para a ediccedilatildeo de materiais [Ble15d] Tambeacutem chamada de Flow-Based Programming esta
16
Metodologia
abordagem permite apresentar ao utilizador os procedimentos como uma caixa negra com pos-
siacuteveis entradas e saiacutedas representadas como ligaccedilotildees de fluxo A correspondente utilizaccedilatildeo na
interaccedilatildeo com geraccedilatildeo procedimental pode permitir o encadeamento de muacuteltiplos procedimentos
No entanto a abordagem pode ser mais trabalhosa para o utilizador introduzindo um niacutevel de
interaccedilatildeo adicional para cada objeto introduzido na cena
323 Funccedilotildees
Esta abordagem disponibiliza ao utilizador cada recurso de geraccedilatildeo procedimental como uma
funccedilatildeo disponiacutevel a qualquer momento na interface da ferramenta de modelaccedilatildeo manual Aquando
da respetiva invocaccedilatildeo satildeo requisitados aos utilizadores os paracircmetros necessaacuterios agrave execuccedilatildeo
A abordagem em causa eacute potencialmente a mais faacutecil de adotar por parte dos utilizadores de
ferramentas de modelaccedilatildeo manual Devido agrave simplicidade na interaccedilatildeo assim como a reduzida
necessidade de tempo e recursos para a implementaccedilatildeo esta foi a abordagem de interaccedilatildeo utilizada
na soluccedilatildeo desenvolvida
33 Arquitetura da Soluccedilatildeo
Para abordar este problema eacute proposta a utilizaccedilatildeo de duas aplicaccedilotildees jaacute presentes no mer-
cado Uma aplicaccedilatildeo dedicada agrave modelaccedilatildeo procedimental e uma aplicaccedilatildeo de modelaccedilatildeo manual
Foi escolhida esta abordagem na medida em que eacute possiacutevel utilizar duas aplicaccedilotildees jaacute existentes
sendo possiacutevel dessa forma aproveitar os pontos fortes de cada soluccedilatildeo com o intuito de otimi-
zar o processo de criaccedilatildeo de novos cenaacuterios e conteuacutedo tridimensional Esta abordagem pode ser
representada como uma soluccedilatildeo estruturada numa arquitetura Cliente-Servidor em que a aplica-
ccedilatildeo de geraccedilatildeo procedimental eacute capaz de fornecer serviccedilos de geraccedilatildeo de conteuacutedo a um ou mais
clientes de modelaccedilatildeo Esta abordagem interliga as duas aplicaccedilotildees atraveacutes de um protocolo de
comunicaccedilatildeo Este permite ao utilizador da ferramenta de modelaccedilatildeo manual requisitar a produ-
ccedilatildeo de conteuacutedo seguindo os valores impostos pelo utilizador nos paracircmetros do procedimento
requisitado O protocolo eacute descrito em maior detalhe na secccedilatildeo 34
331 Vantagens
Faacutecil integraccedilatildeo em diferentes plataformas Devido agrave arquitetura ser baseada na comunicaccedilatildeo
entre duas aplicaccedilotildees por um protocolo de comunicaccedilatildeo geneacuterico eacute com alguma facili-
dade que se realiza a interligaccedilatildeo com diferentes soluccedilotildees de geraccedilatildeo procedimental ou de
modelaccedilatildeo manual Sendo assim possiacutevel a expansatildeo para novos ambientes de modelaccedilatildeo
manual ou mesmo introduzir novas soluccedilotildees de geraccedilatildeo procedimental
Escalabilidade A arquitetura proposta poderaacute permitir que esta seja implementada de modo a que
um servidor central de geraccedilatildeo procedimental sirva por exemplo num ambiente empresa-
rial como um repositoacuterio de recursos de geraccedilatildeo de conteuacutedos desta forma permitindo
17
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Capiacutetulo 2
Estado da Arte e TrabalhosRelacionados
Neste capiacutetulo seraacute realizada uma revisatildeo bibliograacutefica que visa apresentar todos os avanccedilos
realizados nas aacutereas da interaccedilatildeo com os meacutetodos de geraccedilatildeo procedimental Seratildeo apresentados
os tipos de conteuacutedo passiacuteveis de serem produzidos por meio destes meacutetodos bem como as teacutec-
nicas utilizadas para a respetiva interaccedilatildeo e geraccedilatildeo Iratildeo tambeacutem ser apresentadas as abordagens
existentes para uma modelaccedilatildeo manual e as ferramentas existentes no mercado
21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundosvirtuais
O paradigma de interaccedilatildeo com meacutetodos de geraccedilatildeo procedimental eacute tradicionalmente funci-
onal Cada procedimento pode ser considerado uma caixa negra de operaccedilotildees que dependendo
de certos valores de entrada produz um ou mais resultados A interaccedilatildeo com estes nem sempre
eacute a mais intuitiva pois para atingir o resultado desejado envolve em repetidas tentativa e erro por
parte do utilizador No entanto em anos recentes tem existido um avanccedilo consideraacutevel nesta aacuterea
tentado conceder ao utilizador maior controlo sobre os meacutetodos de geraccedilatildeo procedimental com
abordagens como Sketch-based editores visuais e Modelaccedilatildeo Procedimental Invertida
211 Teacutecnicas Sketch-based
Esta abordagem tenta aproximar o tipo de interaccedilatildeo com que os principais utilizadores de
meacutetodos de Modelaccedilatildeo Procedimental estatildeo familiarizados Noccedilotildees como Brushes e Sketches satildeo
alguns dos conceitos mais populares entre designers profissionais
5
Estado da Arte e Trabalhos Relacionados
2111 Terrenos
De Carpentier et al [dCB09] propuseram um meacutetodo de ediccedilatildeo de terrenos no qual eacute dada ao
utilizador a possibilidade de alterar o heightfield atraveacutes de procedural brushes tentando combinar
a interaccedilatildeo manual localizada com a modificaccedilatildeo da parametrizaccedilatildeo por completo de heightfields
Esta abordagem eacute capaz de produzir alteraccedilotildees a tempo real graccedilas agrave respetiva implementaccedilatildeo
com shaders
Smelik et al [STdKB10] seguindo a respetiva proposta de modelaccedilatildeo de mundos virtuais
[STdKB08] propotildeem a utilizaccedilatildeo da abordagem Procedural sketching e demonstram-na num
protoacutetipo intitulado de SketchaWorld Esta abordagem eacute dividida em dois principais modos de
interaccedilatildeo (Figura 21) Landscape Mode e Feature Mode
Figura 21 Procedural sketching of virtual worlds por Smelik et al [STdKB10]
No primeiro o utilizador interage com uma vista top-down do terreno divido em grelha e eacute
capaz de definir a informaccedilatildeo geoloacutegica de cada ceacutelula atraveacutes do uso de Brushes Em Feature
Mode o utilizador manipula pontos de controlo correspondendo a vetores ou poliacutegonos que deli-
mitam a localizaccedilatildeo de cidades rios e vegetaccedilatildeo A ferramenta fornece feedback da construccedilatildeo do
terreno a um ritmo consideraacutevel para uma interaccedilatildeo fluida Esta tambeacutem dispotildee de funcionalida-
des como undo e redo para uma melhorar a interaccedilatildeo entre o utilizador e a ferramenta permitindo
assim a introduccedilatildeo de alteraccedilotildees e caso estas natildeo sejam desejadas pelo utilizador estas podem
ser desfeitas rapidamente Gain et al [GMSe09] propotildeem uma soluccedilatildeo que permite ao utilizador
esboccedilar as silhuetas e limites de corpos montanhosos a serem gerados
6
Estado da Arte e Trabalhos Relacionados
2112 Estradas
Num esforccedilo de melhorar a interaccedilatildeo com path layouts Singh et al [SM08] desenvolveram a
ferramenta Drive que permite a conceptualizaccedilatildeo de redes rodoviaacuterias tridimensionais por meio
de esboccedilos que satildeo posteriormente aproximados a clotoacuteides (Curvas em que o raio varia line-
armente) Com esta abordagem eacute possiacutevel produzir itineraacuterios em que as transiccedilotildees entre raios
de curvatura satildeo lineares tornando-os assim adequados para a conduccedilatildeo A ferramenta tambeacutem
introduz Terrain sensitive sketching que por meios automaacuteticos coloca sinalizaccedilatildeo no percurso e
vegetaccedilatildeo nas redondezas
2113 Vegetaccedilatildeo
Figura 22 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et al[IOI06b IOI06a]
O trabalho de Ijiri et al [IOI06b IOI06a] apresenta uma teacutecnica que atraveacutes de traccedilados defi-
nidos pelo utilizador (Figura 22) permite a manipulaccedilatildeo da direccedilatildeo de crescimento de vegetaccedilatildeo
produzida por L-Systems uma abordagem jaacute muito estudada para a criaccedilatildeo de vegetaccedilatildeo pro-
posta por Lindenmayer [Lin68] como um tipo de gramaacutetica formal capaz de representar padrotildees
e geometria fractal existente na vegetaccedilatildeo Em 1988 foi proposto por Prusinkiewicz [PLH88] a
utilizaccedilatildeo de L-systems para a modelaccedilatildeo de vegetaccedilatildeo Ao longo das ultimas deacutecadas tecircm sido
realizados avanccedilos consideraacuteveis na produccedilatildeo de vegetaccedilatildeo realiacutestica [WP95] e a respetiva inte-
raccedilatildeo com o seu meio ambiente [MP96 Pru00] tentado assim produzir vegetaccedilatildeo que melhor
simule o comportamento fiacutesico e bioloacutegico de vegetaccedilatildeo real
Mais recentemente o trabalho de Palubicky et al [PHL+09] foi expandido e transportado
para uma aplicaccedilatildeo para dispositivos iPad em que o modelador tem um controlo fino sobre o
crescimento de uma aacutervore Utilizando o conceito de tree self-organization Longay et al criaram
7
Estado da Arte e Trabalhos Relacionados
a ferramenta TreeSketch 23 que estimula a competiccedilatildeo entre os ramos de uma aacutervore por espaccedilo
e luz dentro dos paracircmetros e inputs visuais dados pelo utilizador [LRBP12]
Figura 23 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch
212 Editores Visuais
Numa tentativa de melhorar a interaccedilatildeo com modelaccedilatildeo procedimental baseada em gramaacuteticas
[WWSR03 MWH+06] Lipp et al propuseram uma abordagem que permite a manipulaccedilatildeo direta
do resultado produzido por uma gramaacutetica O utilizador pode manipular diretamente no objeto as
respetivas dimensotildees e configuraccedilotildees [LWW08]
Mais recentemente Krecklau et al [KK12] introduziram uma abordagem que permite a ge-
raccedilatildeo de cenas a partir de primitivas de alto niacutevel e a correspondente manipulaccedilatildeo por interaccedilatildeo
direta na cena consequentemente permitindo a utilizadores menos experientes a utilizaccedilatildeo de
gramaacuteticas procedimentais complexas sem a necessidade de interaccedilatildeo textual com as mesmas
2121 Visual Node Based
Editores Visual Node Based satildeo utilizados em muitas aplicaccedilotildees comercias como meio de
dar ao utilizador feedback visual do fluxo de informaccedilatildeo Encontra-se em editores de shaders
[Hol15 Aut15b] editores de animaccedilotildees [Tec15] e em editores de texturas [Cod15] A vasta uti-
lizaccedilatildeo da teacutecnica na aacuterea de produccedilatildeo de conteuacutedo 3D por utilizadores com pouca experiecircncia
de programaccedilatildeo levou a que investigadores a utilizassem para a especificaccedilatildeo de gramaacuteticas de
produccedilatildeo
Nesse contexto Patow [Pat12] desenvolveu uma soluccedilatildeo para a construccedilatildeo e manipulaccedilatildeo de
gramaacuteticas por meio de um editor visual onde noacutes que representam operaccedilotildees geomeacutetricas dos
correspondentes antecessores transmitem o resultado aos noacutes sucessores Na mesma publica-
ccedilatildeo Patow realccedila a importacircncia que esta abordagem acarreta para a modelaccedilatildeo procedimental de
edifiacutecios e admite que existe ainda muito potencial por explorar
8
Estado da Arte e Trabalhos Relacionados
Mais recentemente o trabalho de Silva et al [SMBC13] apresenta uma metodologia de edi-
ccedilatildeo em que grafos podem ser encapsulados em noacutes designados Component capazes de representar
construccedilotildees complexas Os noacutes podem ser facilmente introduzidos noutros grafos e editados por
meio de filtros de fluxo colocados nas arestas ou por restriccedilotildees que auxiliam a especificar a utili-
zaccedilatildeo dos noacutes (Figura 24)
Figura 24 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13]
213 Modelaccedilatildeo Procedimental Invertida
Inverse PM eacute uma teacutecnica em que um dado modelo de entrada eacute aproximado a uma represen-
taccedilatildeo procedimental
Aliaga et al [ARB07] apresenta a reconstruccedilatildeo de edifiacutecios por meio de fotografias Nesta
abordagem o utilizador define os limites das fachadas do edifiacutecio criando uma representaccedilatildeo
minimalista De seguida eacute automaticamente aproximada uma gramaacutetica que melhor representa
o edifiacutecio em questatildeo Com os trabalhos de Šrsquotava et al [ŠBM+10] na parametrizaccedilatildeo de arte
vetorial 2D e de Mitra et al [MGP06] em encontrar simetrias em objetos tridimensionais Bokeloh
et al [BWS10] aplica estes conceitos para a descoberta de simetrias nos objetos e a consequente
aproximaccedilatildeo de gramaacuteticas que definam o objeto em questatildeo
As abordagens atuais focam-se em Modelaccedilatildeo invertida de ambientes urbanos no entanto
Vanegas et al [VGDA+12] demonstram uma metodologia de aproximaccedilatildeo de gramaacuteticas capazes
de representar para aleacutem de edifiacutecios sistemas complexos de vegetaccedilatildeo aproximados a um objeto
jaacute existente
9
Estado da Arte e Trabalhos Relacionados
22 Modelaccedilatildeo 3D Manual
Para a produccedilatildeo de objetos tridimensionais os modeladores utilizam ferramentas dedicadas
que lhes datildeo um controlo total sobre o modelo a ser construiacutedo Estes variam em metaacuteforas de
interface e em puacuteblico alvo Nesta secccedilatildeo vatildeo ser abordadas as teacutecnicas de modelaccedilatildeo atualmente
utilizadas por estas ferramentas e seratildeo listadas as ferramentas existentes no mercado e as respeti-
vas funcionalidades principais
221 Teacutecnicas de Modelaccedilatildeo Manual
2211 Polygon Modelling
Polygon Modelling eacute uma abordagem para a representaccedilatildeo de superfiacutecies tridimensionais utili-
zando poliacutegonos estes satildeo representados por veacutertices e arestas e em grupos formam uma Polygon
Mesh que pode ser armazenada de muacuteltiplas formas [TM06 Bau72 Smi06] Eacute possiacutevel criar ma-
lhas veacutertice a veacutertice manualmente No entanto eacute comum a respetiva manipulaccedilatildeo em software
graacutefico concedendo aos modeladores ferramentas interativas como Blender Autodesk Maya e 3D
Studio Max
Figura 25 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14]
Uma das abordagens mais comuns eacute denominada Box Modelling na qual uma forma geomeacute-
trica considerada uma primitiva (ie cubo esfera cilindro) eacute esculpida iterativamente por pas-
sos de subdivisatildeo do objeto e subsequente manipulaccedilatildeo da geometria ateacute se obter o objeto final
[Jon02 sub14] A figura 25 demonstra da teacutecnica Box Modelling para a modelaccedilatildeo de uma face
Esta abordagem pode ser considerada uma abordagem Subtrativa pois eacute atraveacutes da reduccedilatildeo de um
objeto base que eacute obtido o objeto desejado
10
Estado da Arte e Trabalhos Relacionados
O polygon modelling caracteriza-se pelo controlo direto sobre a colocaccedilatildeo de cada veacutertice de
uma superfiacutecie permitindo dessa forma um controlo fino e preciso sobre o resultado a produzir
2212 NURBS
NURBS ou Non-uniform rational B-spline eacute uma generalizaccedilatildeo de B-Splines e Curvas de Beacute-
zier [KR79 Cab92] um modelo matemaacutetico usado para representar curvas e superfiacutecies com
grande precisatildeo e flexibilidade (Figura 26) Eacute principalmente utilizado em aacutereas da computaccedilatildeo
graacutefica (CAD CAM CAE) onde a precisatildeo dos modelos obtidos eacute muito importante Inicialmente
estudada por Matemaacuteticos como I J Schoenberg [Cob84] foi aplicada em sistemas CAD para a
modelaccedilatildeo na induacutestria Automoacutevel [Beacute83 Beacutez81 Bez68]
Figura 26 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modeloNURBS
2213 Digital Sculpting
Digital Sculpting eacute a adaptaccedilatildeo de teacutecnicas utilizadas para moldar materiais como o barro agrave
modelaccedilatildeo 3D Estas ferramentas permitem ao modelador empurrar puxar polir vincare
adicionar ou remover volume Perry et al [PF01] introduziram Kizamu um dos primeiros passos
na aacuterea do Digital Sculpting Os modelos satildeo representados no que eacute chamado de Adaptively Sam-
pled Distance Fields (ADF) [FPRJ00] que permite representar dados volumeacutetricos que tornam o
processo de Digital Sculpting possiacutevel
222 Ferramentas de Modelaccedilatildeo 3D
2221 Blender
O Blender [ble15a] eacute uma ferramenta profissional de modelaccedilatildeo de coacutedigo aberto desen-
volvida pela Blender Foundation Suporta uma grande variedade de primitivas geomeacutetricas in-
11
Estado da Arte e Trabalhos Relacionados
Figura 27 Interface da ferramenta Blender
cluiacutendo Polygon Meshes curvas de Bezier superfiacutecies NURBS Metaballs e Digital Sculpting
Esta destaca-se por ser gratuita e pela facilidade de criar extensotildees [ble15b] usando a API Python
existente [ble15c] que permite adicionar novas funcionalidades agrave ferramenta
2222 Autodesk Maya
Figura 28 Interface da ferramenta Autodesk Maya
O Autodesk Maya [Aut15b] eacute uma ferramenta de produccedilatildeo de conteuacutedo 3D utilizada nas induacutes-
trias do cinema televisatildeo videojogos e arquitetura Eacute de coacutedigo fechado e a respetiva utilizaccedilatildeo
requer que o utilizador possua uma licenccedila Tal como o Blender o Maya daacute aos modeladores
ferramentas para estes criarem objetos de uma forma interativa 28 Apesar de ser uma ferramenta
versaacutetil e capaz de satisfazer as necessidades de todas induacutestrias acima referidas o Autodesk
Maya tende a ser mais utilizado pela induacutestria do Cinema devido agrave vasta customizaccedilatildeo possiacutevel de
aspetos importantes para esta induacutestria como Animaccedilatildeo e VFX [Aut15c]
12
Estado da Arte e Trabalhos Relacionados
2223 Autodesk 3D Studio Max
O 3D Studio Max [Aut15a] eacute outra ferramenta da Autodesk em muitos aspetos semelhante
ao Maya No entanto o 3DS Max estaacute apenas disponiacutevel para maacutequinas de sistema operativo
Windows e sempre foi mais utilizado pela induacutestria dos videojogos para a criaccedilatildeo de modelos 3D
Tal como o Autodesk Maya este dispotildee de poderosos motores de renderizaccedilatildeo Ray Tracing
2224 Zbrush
O Zbrush [Pix15] eacute uma ferramenta de modelaccedilatildeo 3D baseada nos conceitos de Digital Mo-
delling Daacute ao artista muacuteltiplas Brushes que permitem manipular o objeto a ser definido com
paradigmas transportados de outras aacutereas artiacutesticas Pode tornar mais acessiacutevel para um utilizador
pouco experiente com alguns paradigmas da Computaccedilatildeo Graacutefica a modelaccedilatildeo de objetos com
consideraacutevel detalhe e liberdade artiacutestica [Spe11]
23 Sumaacuterio
Apoacutes o levantamento do estado da arte eacute possiacutevel constatar que as ferramentas de modelaccedilatildeo
manual satildeo a escolha de eleiccedilatildeo para contextos em que o modelador deseja o maior niacutevel controlo
possiacutevel sobre o objeto a ser produzido No entanto considerando ferramentas de modelaccedilatildeo
procedimental tem existido um esforccedilo por parte desta comunidade para tornar a correspondente
experiecircncia de utilizaccedilatildeo mais acessiacutevel a utilizadores pouco familiarizados com o funcionamento
do mesmo Por enquanto a utilizaccedilatildeo deste tipo de ferramentas ainda requer que o conteuacutedo
seja criado em ferramentas dedicadas completamente separadas das ferramentas tradicionais (ie
Maya Blender) essenciais para o trabalho artiacutestico levando a quebras no fluxo de trabalho
13
Estado da Arte e Trabalhos Relacionados
14
Capiacutetulo 3
Metodologia
Com os desenvolvimentos atuais na aacuterea de modelaccedilatildeo procedimental apresentados no capiacute-
tulo 2 eacute possiacutevel verificar que as soluccedilotildees de MP existentes permitem produzir variados tipos de
conteuacutedo tais como terrenos vegetaccedilatildeo edifiacutecios estradas e cidades por outro lado as respeti-
vas integraccedilotildees em ambientes de modelaccedilatildeo manual satildeo algo limitadas ou apenas disponiacuteveis em
ferramentas externas especializadas num uacutenico tipo de conteuacutedo
Da mesma forma como verificado em 21 foram efetuadas vaacuterias tentativas pela comunidade
envolvida em geraccedilatildeo procedimental no sentido a melhorar a interaccedilatildeo com ferramentas dedica-
das agrave geraccedilatildeo procedimental no entanto existe ainda uma grande margem para avanccedilo de uma
integraccedilatildeo geneacuterica destes processos numa ferramenta de modelaccedilatildeo manual Devido agrave falta de
soluccedilotildees que se integrem de forma transparente e acessiacutevel em ambientes de modelaccedilatildeo manual
pretende-se apresentar uma soluccedilatildeo com o objetivo de interligar as duas abordagens neste capiacute-
tulo Inicialmente seraacute apresentada em pormenor a arquitetura da soluccedilatildeo de seguida o protocolo
de comunicaccedilatildeo entre os dois ambientes de modelaccedilatildeo e finalmente seraacute proposto um meacutetodo de
trabalho no qual seraacute descrita a interaccedilatildeo ideal entre o modelador e a soluccedilatildeo proposta
31 Meacutetodo de Trabalho
Numa interaccedilatildeo ideal o modelador teria controlo absoluto sobre os meacutetodos de geraccedilatildeo proce-
dimental e seria possiacutevel modelar procedimentalmente sobre alteraccedilotildees manuais realizadas sobre
o objeto No entanto nem sempre eacute desejado esse niacutevel de controlo e interligaccedilatildeo entre as aborda-
gens Imaginando a modelaccedilatildeo de um edifiacutecio este eacute construiacutedo segundo meacutetodos procedimentais
e recebe como entrada um poliacutegono que delimita a fundaccedilatildeo assim como paracircmetros numeacutericos e
booleanos que definem a geometria resultante Depois de modelado procedimentalmente o objeto
eacute adicionado ao ambiente de modelaccedilatildeo manual onde o modelador pode realizar alteraccedilotildees em
detalhes na geometria ou mesmo alteraccedilotildees profundas na geometria do mesmo
15
Metodologia
Considerando uma situaccedilatildeo em que o modelador realizou alteraccedilotildees profundas na geometria
produzida como por exemplo a reparticcedilatildeo de uma das fachadas do edifiacutecio em trecircs fachadas
Assim que realizadas estas alteraccedilotildees o utilizador pretende alterar a altura do edifiacutecio alterando o
paracircmetro correspondente e requisitando uma atualizaccedilatildeo Para ser possiacutevel manter as alteraccedilotildees
realizadas manualmente e em simultacircneo respeitar as regras definidas pela geraccedilatildeo procedimen-
tal seria necessaacuterio converter estas alteraccedilotildees em regras possiacuteveis de definir no escopo do ambiente
de geraccedilatildeo procedimental
De qualquer das formas as alteraccedilotildees realizadas no ponto anterior podem simplesmente natildeo
fazer sentido apoacutes a aplicaccedilatildeo sobre o objeto que foi reproduzido seguindo as regras definias
por um procedimento Devido a esta limitaccedilatildeo eacute assumido que assim que o utilizador requisita
uma nova execuccedilatildeo de um procedimento o qual natildeo tem problemas em descartar as alteraccedilotildees
executadas manualmente sobre o objeto em questatildeo
Tendo em consideraccedilatildeo esta limitaccedilatildeo eacute possiacutevel estruturar um fluxo de trabalho que melhor
explore as vantagens e limitaccedilotildees de ambas as abordagens de geraccedilatildeo de conteuacutedo tridimensional
O utilizador tem uma panoacuteplia de conteuacutedos procedimentais ao seu dispor que podem ser definidas
via paracircmetros numeacutericos e geomeacutetricos O conteuacutedo eacute adicionado ao ambiente de modelaccedilatildeo ma-
nual e os paracircmetros podem ainda ser editados alterados ao custo de que as modificaccedilotildees manuais
realizadas sobre o objeto sejam descartadas
32 Metodologias de Interaccedilatildeo com o Utilizador
Em relaccedilatildeo agrave interaccedilatildeo com o utilizador foram estudadas trecircs abordagens para a interaccedilatildeo com
meacutetodos de geraccedilatildeo procedimental em ambiente de modelaccedilatildeo manual
321 Modificadores
O conceito de modificadores eacute jaacute utilizado em ambientes de modelaccedilatildeo manual eg no Blen-
der [Bap14 Ble15e] onde satildeo utilizados para realizar operaccedilotildees sobre objetos na cena sem destruir
a geometria subjacente apenas modificam a forma como os objetos satildeo percecionados pelo motor
de renderizaccedilatildeo Esta abordagem eacute uacutetil em situaccedilotildees onde o procedimento a ser executado en-
volve modificaccedilotildees sobre uma geometria base como tal permitindo realizar muacuteltiplas alteraccedilotildees
sobre um objeto podendo estas ser facilmente canceladas recuperando o objeto original No en-
tanto nem todos os recursos de geraccedilatildeo procedimental incidem sobre modificaccedilatildeo de geometria
Os meios de geraccedilatildeo procedimental em muitas situaccedilotildees produzem objetos e cenaacuterios uacutenicos e
independentes de qualquer geometria de entrada
322 Grafos
A abordagem de interaccedilatildeo via grafos eacute atualmente utilizada num ambiente de modelaccedilatildeo ma-
nual para a ediccedilatildeo de materiais [Ble15d] Tambeacutem chamada de Flow-Based Programming esta
16
Metodologia
abordagem permite apresentar ao utilizador os procedimentos como uma caixa negra com pos-
siacuteveis entradas e saiacutedas representadas como ligaccedilotildees de fluxo A correspondente utilizaccedilatildeo na
interaccedilatildeo com geraccedilatildeo procedimental pode permitir o encadeamento de muacuteltiplos procedimentos
No entanto a abordagem pode ser mais trabalhosa para o utilizador introduzindo um niacutevel de
interaccedilatildeo adicional para cada objeto introduzido na cena
323 Funccedilotildees
Esta abordagem disponibiliza ao utilizador cada recurso de geraccedilatildeo procedimental como uma
funccedilatildeo disponiacutevel a qualquer momento na interface da ferramenta de modelaccedilatildeo manual Aquando
da respetiva invocaccedilatildeo satildeo requisitados aos utilizadores os paracircmetros necessaacuterios agrave execuccedilatildeo
A abordagem em causa eacute potencialmente a mais faacutecil de adotar por parte dos utilizadores de
ferramentas de modelaccedilatildeo manual Devido agrave simplicidade na interaccedilatildeo assim como a reduzida
necessidade de tempo e recursos para a implementaccedilatildeo esta foi a abordagem de interaccedilatildeo utilizada
na soluccedilatildeo desenvolvida
33 Arquitetura da Soluccedilatildeo
Para abordar este problema eacute proposta a utilizaccedilatildeo de duas aplicaccedilotildees jaacute presentes no mer-
cado Uma aplicaccedilatildeo dedicada agrave modelaccedilatildeo procedimental e uma aplicaccedilatildeo de modelaccedilatildeo manual
Foi escolhida esta abordagem na medida em que eacute possiacutevel utilizar duas aplicaccedilotildees jaacute existentes
sendo possiacutevel dessa forma aproveitar os pontos fortes de cada soluccedilatildeo com o intuito de otimi-
zar o processo de criaccedilatildeo de novos cenaacuterios e conteuacutedo tridimensional Esta abordagem pode ser
representada como uma soluccedilatildeo estruturada numa arquitetura Cliente-Servidor em que a aplica-
ccedilatildeo de geraccedilatildeo procedimental eacute capaz de fornecer serviccedilos de geraccedilatildeo de conteuacutedo a um ou mais
clientes de modelaccedilatildeo Esta abordagem interliga as duas aplicaccedilotildees atraveacutes de um protocolo de
comunicaccedilatildeo Este permite ao utilizador da ferramenta de modelaccedilatildeo manual requisitar a produ-
ccedilatildeo de conteuacutedo seguindo os valores impostos pelo utilizador nos paracircmetros do procedimento
requisitado O protocolo eacute descrito em maior detalhe na secccedilatildeo 34
331 Vantagens
Faacutecil integraccedilatildeo em diferentes plataformas Devido agrave arquitetura ser baseada na comunicaccedilatildeo
entre duas aplicaccedilotildees por um protocolo de comunicaccedilatildeo geneacuterico eacute com alguma facili-
dade que se realiza a interligaccedilatildeo com diferentes soluccedilotildees de geraccedilatildeo procedimental ou de
modelaccedilatildeo manual Sendo assim possiacutevel a expansatildeo para novos ambientes de modelaccedilatildeo
manual ou mesmo introduzir novas soluccedilotildees de geraccedilatildeo procedimental
Escalabilidade A arquitetura proposta poderaacute permitir que esta seja implementada de modo a que
um servidor central de geraccedilatildeo procedimental sirva por exemplo num ambiente empresa-
rial como um repositoacuterio de recursos de geraccedilatildeo de conteuacutedos desta forma permitindo
17
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Estado da Arte e Trabalhos Relacionados
2111 Terrenos
De Carpentier et al [dCB09] propuseram um meacutetodo de ediccedilatildeo de terrenos no qual eacute dada ao
utilizador a possibilidade de alterar o heightfield atraveacutes de procedural brushes tentando combinar
a interaccedilatildeo manual localizada com a modificaccedilatildeo da parametrizaccedilatildeo por completo de heightfields
Esta abordagem eacute capaz de produzir alteraccedilotildees a tempo real graccedilas agrave respetiva implementaccedilatildeo
com shaders
Smelik et al [STdKB10] seguindo a respetiva proposta de modelaccedilatildeo de mundos virtuais
[STdKB08] propotildeem a utilizaccedilatildeo da abordagem Procedural sketching e demonstram-na num
protoacutetipo intitulado de SketchaWorld Esta abordagem eacute dividida em dois principais modos de
interaccedilatildeo (Figura 21) Landscape Mode e Feature Mode
Figura 21 Procedural sketching of virtual worlds por Smelik et al [STdKB10]
No primeiro o utilizador interage com uma vista top-down do terreno divido em grelha e eacute
capaz de definir a informaccedilatildeo geoloacutegica de cada ceacutelula atraveacutes do uso de Brushes Em Feature
Mode o utilizador manipula pontos de controlo correspondendo a vetores ou poliacutegonos que deli-
mitam a localizaccedilatildeo de cidades rios e vegetaccedilatildeo A ferramenta fornece feedback da construccedilatildeo do
terreno a um ritmo consideraacutevel para uma interaccedilatildeo fluida Esta tambeacutem dispotildee de funcionalida-
des como undo e redo para uma melhorar a interaccedilatildeo entre o utilizador e a ferramenta permitindo
assim a introduccedilatildeo de alteraccedilotildees e caso estas natildeo sejam desejadas pelo utilizador estas podem
ser desfeitas rapidamente Gain et al [GMSe09] propotildeem uma soluccedilatildeo que permite ao utilizador
esboccedilar as silhuetas e limites de corpos montanhosos a serem gerados
6
Estado da Arte e Trabalhos Relacionados
2112 Estradas
Num esforccedilo de melhorar a interaccedilatildeo com path layouts Singh et al [SM08] desenvolveram a
ferramenta Drive que permite a conceptualizaccedilatildeo de redes rodoviaacuterias tridimensionais por meio
de esboccedilos que satildeo posteriormente aproximados a clotoacuteides (Curvas em que o raio varia line-
armente) Com esta abordagem eacute possiacutevel produzir itineraacuterios em que as transiccedilotildees entre raios
de curvatura satildeo lineares tornando-os assim adequados para a conduccedilatildeo A ferramenta tambeacutem
introduz Terrain sensitive sketching que por meios automaacuteticos coloca sinalizaccedilatildeo no percurso e
vegetaccedilatildeo nas redondezas
2113 Vegetaccedilatildeo
Figura 22 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et al[IOI06b IOI06a]
O trabalho de Ijiri et al [IOI06b IOI06a] apresenta uma teacutecnica que atraveacutes de traccedilados defi-
nidos pelo utilizador (Figura 22) permite a manipulaccedilatildeo da direccedilatildeo de crescimento de vegetaccedilatildeo
produzida por L-Systems uma abordagem jaacute muito estudada para a criaccedilatildeo de vegetaccedilatildeo pro-
posta por Lindenmayer [Lin68] como um tipo de gramaacutetica formal capaz de representar padrotildees
e geometria fractal existente na vegetaccedilatildeo Em 1988 foi proposto por Prusinkiewicz [PLH88] a
utilizaccedilatildeo de L-systems para a modelaccedilatildeo de vegetaccedilatildeo Ao longo das ultimas deacutecadas tecircm sido
realizados avanccedilos consideraacuteveis na produccedilatildeo de vegetaccedilatildeo realiacutestica [WP95] e a respetiva inte-
raccedilatildeo com o seu meio ambiente [MP96 Pru00] tentado assim produzir vegetaccedilatildeo que melhor
simule o comportamento fiacutesico e bioloacutegico de vegetaccedilatildeo real
Mais recentemente o trabalho de Palubicky et al [PHL+09] foi expandido e transportado
para uma aplicaccedilatildeo para dispositivos iPad em que o modelador tem um controlo fino sobre o
crescimento de uma aacutervore Utilizando o conceito de tree self-organization Longay et al criaram
7
Estado da Arte e Trabalhos Relacionados
a ferramenta TreeSketch 23 que estimula a competiccedilatildeo entre os ramos de uma aacutervore por espaccedilo
e luz dentro dos paracircmetros e inputs visuais dados pelo utilizador [LRBP12]
Figura 23 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch
212 Editores Visuais
Numa tentativa de melhorar a interaccedilatildeo com modelaccedilatildeo procedimental baseada em gramaacuteticas
[WWSR03 MWH+06] Lipp et al propuseram uma abordagem que permite a manipulaccedilatildeo direta
do resultado produzido por uma gramaacutetica O utilizador pode manipular diretamente no objeto as
respetivas dimensotildees e configuraccedilotildees [LWW08]
Mais recentemente Krecklau et al [KK12] introduziram uma abordagem que permite a ge-
raccedilatildeo de cenas a partir de primitivas de alto niacutevel e a correspondente manipulaccedilatildeo por interaccedilatildeo
direta na cena consequentemente permitindo a utilizadores menos experientes a utilizaccedilatildeo de
gramaacuteticas procedimentais complexas sem a necessidade de interaccedilatildeo textual com as mesmas
2121 Visual Node Based
Editores Visual Node Based satildeo utilizados em muitas aplicaccedilotildees comercias como meio de
dar ao utilizador feedback visual do fluxo de informaccedilatildeo Encontra-se em editores de shaders
[Hol15 Aut15b] editores de animaccedilotildees [Tec15] e em editores de texturas [Cod15] A vasta uti-
lizaccedilatildeo da teacutecnica na aacuterea de produccedilatildeo de conteuacutedo 3D por utilizadores com pouca experiecircncia
de programaccedilatildeo levou a que investigadores a utilizassem para a especificaccedilatildeo de gramaacuteticas de
produccedilatildeo
Nesse contexto Patow [Pat12] desenvolveu uma soluccedilatildeo para a construccedilatildeo e manipulaccedilatildeo de
gramaacuteticas por meio de um editor visual onde noacutes que representam operaccedilotildees geomeacutetricas dos
correspondentes antecessores transmitem o resultado aos noacutes sucessores Na mesma publica-
ccedilatildeo Patow realccedila a importacircncia que esta abordagem acarreta para a modelaccedilatildeo procedimental de
edifiacutecios e admite que existe ainda muito potencial por explorar
8
Estado da Arte e Trabalhos Relacionados
Mais recentemente o trabalho de Silva et al [SMBC13] apresenta uma metodologia de edi-
ccedilatildeo em que grafos podem ser encapsulados em noacutes designados Component capazes de representar
construccedilotildees complexas Os noacutes podem ser facilmente introduzidos noutros grafos e editados por
meio de filtros de fluxo colocados nas arestas ou por restriccedilotildees que auxiliam a especificar a utili-
zaccedilatildeo dos noacutes (Figura 24)
Figura 24 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13]
213 Modelaccedilatildeo Procedimental Invertida
Inverse PM eacute uma teacutecnica em que um dado modelo de entrada eacute aproximado a uma represen-
taccedilatildeo procedimental
Aliaga et al [ARB07] apresenta a reconstruccedilatildeo de edifiacutecios por meio de fotografias Nesta
abordagem o utilizador define os limites das fachadas do edifiacutecio criando uma representaccedilatildeo
minimalista De seguida eacute automaticamente aproximada uma gramaacutetica que melhor representa
o edifiacutecio em questatildeo Com os trabalhos de Šrsquotava et al [ŠBM+10] na parametrizaccedilatildeo de arte
vetorial 2D e de Mitra et al [MGP06] em encontrar simetrias em objetos tridimensionais Bokeloh
et al [BWS10] aplica estes conceitos para a descoberta de simetrias nos objetos e a consequente
aproximaccedilatildeo de gramaacuteticas que definam o objeto em questatildeo
As abordagens atuais focam-se em Modelaccedilatildeo invertida de ambientes urbanos no entanto
Vanegas et al [VGDA+12] demonstram uma metodologia de aproximaccedilatildeo de gramaacuteticas capazes
de representar para aleacutem de edifiacutecios sistemas complexos de vegetaccedilatildeo aproximados a um objeto
jaacute existente
9
Estado da Arte e Trabalhos Relacionados
22 Modelaccedilatildeo 3D Manual
Para a produccedilatildeo de objetos tridimensionais os modeladores utilizam ferramentas dedicadas
que lhes datildeo um controlo total sobre o modelo a ser construiacutedo Estes variam em metaacuteforas de
interface e em puacuteblico alvo Nesta secccedilatildeo vatildeo ser abordadas as teacutecnicas de modelaccedilatildeo atualmente
utilizadas por estas ferramentas e seratildeo listadas as ferramentas existentes no mercado e as respeti-
vas funcionalidades principais
221 Teacutecnicas de Modelaccedilatildeo Manual
2211 Polygon Modelling
Polygon Modelling eacute uma abordagem para a representaccedilatildeo de superfiacutecies tridimensionais utili-
zando poliacutegonos estes satildeo representados por veacutertices e arestas e em grupos formam uma Polygon
Mesh que pode ser armazenada de muacuteltiplas formas [TM06 Bau72 Smi06] Eacute possiacutevel criar ma-
lhas veacutertice a veacutertice manualmente No entanto eacute comum a respetiva manipulaccedilatildeo em software
graacutefico concedendo aos modeladores ferramentas interativas como Blender Autodesk Maya e 3D
Studio Max
Figura 25 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14]
Uma das abordagens mais comuns eacute denominada Box Modelling na qual uma forma geomeacute-
trica considerada uma primitiva (ie cubo esfera cilindro) eacute esculpida iterativamente por pas-
sos de subdivisatildeo do objeto e subsequente manipulaccedilatildeo da geometria ateacute se obter o objeto final
[Jon02 sub14] A figura 25 demonstra da teacutecnica Box Modelling para a modelaccedilatildeo de uma face
Esta abordagem pode ser considerada uma abordagem Subtrativa pois eacute atraveacutes da reduccedilatildeo de um
objeto base que eacute obtido o objeto desejado
10
Estado da Arte e Trabalhos Relacionados
O polygon modelling caracteriza-se pelo controlo direto sobre a colocaccedilatildeo de cada veacutertice de
uma superfiacutecie permitindo dessa forma um controlo fino e preciso sobre o resultado a produzir
2212 NURBS
NURBS ou Non-uniform rational B-spline eacute uma generalizaccedilatildeo de B-Splines e Curvas de Beacute-
zier [KR79 Cab92] um modelo matemaacutetico usado para representar curvas e superfiacutecies com
grande precisatildeo e flexibilidade (Figura 26) Eacute principalmente utilizado em aacutereas da computaccedilatildeo
graacutefica (CAD CAM CAE) onde a precisatildeo dos modelos obtidos eacute muito importante Inicialmente
estudada por Matemaacuteticos como I J Schoenberg [Cob84] foi aplicada em sistemas CAD para a
modelaccedilatildeo na induacutestria Automoacutevel [Beacute83 Beacutez81 Bez68]
Figura 26 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modeloNURBS
2213 Digital Sculpting
Digital Sculpting eacute a adaptaccedilatildeo de teacutecnicas utilizadas para moldar materiais como o barro agrave
modelaccedilatildeo 3D Estas ferramentas permitem ao modelador empurrar puxar polir vincare
adicionar ou remover volume Perry et al [PF01] introduziram Kizamu um dos primeiros passos
na aacuterea do Digital Sculpting Os modelos satildeo representados no que eacute chamado de Adaptively Sam-
pled Distance Fields (ADF) [FPRJ00] que permite representar dados volumeacutetricos que tornam o
processo de Digital Sculpting possiacutevel
222 Ferramentas de Modelaccedilatildeo 3D
2221 Blender
O Blender [ble15a] eacute uma ferramenta profissional de modelaccedilatildeo de coacutedigo aberto desen-
volvida pela Blender Foundation Suporta uma grande variedade de primitivas geomeacutetricas in-
11
Estado da Arte e Trabalhos Relacionados
Figura 27 Interface da ferramenta Blender
cluiacutendo Polygon Meshes curvas de Bezier superfiacutecies NURBS Metaballs e Digital Sculpting
Esta destaca-se por ser gratuita e pela facilidade de criar extensotildees [ble15b] usando a API Python
existente [ble15c] que permite adicionar novas funcionalidades agrave ferramenta
2222 Autodesk Maya
Figura 28 Interface da ferramenta Autodesk Maya
O Autodesk Maya [Aut15b] eacute uma ferramenta de produccedilatildeo de conteuacutedo 3D utilizada nas induacutes-
trias do cinema televisatildeo videojogos e arquitetura Eacute de coacutedigo fechado e a respetiva utilizaccedilatildeo
requer que o utilizador possua uma licenccedila Tal como o Blender o Maya daacute aos modeladores
ferramentas para estes criarem objetos de uma forma interativa 28 Apesar de ser uma ferramenta
versaacutetil e capaz de satisfazer as necessidades de todas induacutestrias acima referidas o Autodesk
Maya tende a ser mais utilizado pela induacutestria do Cinema devido agrave vasta customizaccedilatildeo possiacutevel de
aspetos importantes para esta induacutestria como Animaccedilatildeo e VFX [Aut15c]
12
Estado da Arte e Trabalhos Relacionados
2223 Autodesk 3D Studio Max
O 3D Studio Max [Aut15a] eacute outra ferramenta da Autodesk em muitos aspetos semelhante
ao Maya No entanto o 3DS Max estaacute apenas disponiacutevel para maacutequinas de sistema operativo
Windows e sempre foi mais utilizado pela induacutestria dos videojogos para a criaccedilatildeo de modelos 3D
Tal como o Autodesk Maya este dispotildee de poderosos motores de renderizaccedilatildeo Ray Tracing
2224 Zbrush
O Zbrush [Pix15] eacute uma ferramenta de modelaccedilatildeo 3D baseada nos conceitos de Digital Mo-
delling Daacute ao artista muacuteltiplas Brushes que permitem manipular o objeto a ser definido com
paradigmas transportados de outras aacutereas artiacutesticas Pode tornar mais acessiacutevel para um utilizador
pouco experiente com alguns paradigmas da Computaccedilatildeo Graacutefica a modelaccedilatildeo de objetos com
consideraacutevel detalhe e liberdade artiacutestica [Spe11]
23 Sumaacuterio
Apoacutes o levantamento do estado da arte eacute possiacutevel constatar que as ferramentas de modelaccedilatildeo
manual satildeo a escolha de eleiccedilatildeo para contextos em que o modelador deseja o maior niacutevel controlo
possiacutevel sobre o objeto a ser produzido No entanto considerando ferramentas de modelaccedilatildeo
procedimental tem existido um esforccedilo por parte desta comunidade para tornar a correspondente
experiecircncia de utilizaccedilatildeo mais acessiacutevel a utilizadores pouco familiarizados com o funcionamento
do mesmo Por enquanto a utilizaccedilatildeo deste tipo de ferramentas ainda requer que o conteuacutedo
seja criado em ferramentas dedicadas completamente separadas das ferramentas tradicionais (ie
Maya Blender) essenciais para o trabalho artiacutestico levando a quebras no fluxo de trabalho
13
Estado da Arte e Trabalhos Relacionados
14
Capiacutetulo 3
Metodologia
Com os desenvolvimentos atuais na aacuterea de modelaccedilatildeo procedimental apresentados no capiacute-
tulo 2 eacute possiacutevel verificar que as soluccedilotildees de MP existentes permitem produzir variados tipos de
conteuacutedo tais como terrenos vegetaccedilatildeo edifiacutecios estradas e cidades por outro lado as respeti-
vas integraccedilotildees em ambientes de modelaccedilatildeo manual satildeo algo limitadas ou apenas disponiacuteveis em
ferramentas externas especializadas num uacutenico tipo de conteuacutedo
Da mesma forma como verificado em 21 foram efetuadas vaacuterias tentativas pela comunidade
envolvida em geraccedilatildeo procedimental no sentido a melhorar a interaccedilatildeo com ferramentas dedica-
das agrave geraccedilatildeo procedimental no entanto existe ainda uma grande margem para avanccedilo de uma
integraccedilatildeo geneacuterica destes processos numa ferramenta de modelaccedilatildeo manual Devido agrave falta de
soluccedilotildees que se integrem de forma transparente e acessiacutevel em ambientes de modelaccedilatildeo manual
pretende-se apresentar uma soluccedilatildeo com o objetivo de interligar as duas abordagens neste capiacute-
tulo Inicialmente seraacute apresentada em pormenor a arquitetura da soluccedilatildeo de seguida o protocolo
de comunicaccedilatildeo entre os dois ambientes de modelaccedilatildeo e finalmente seraacute proposto um meacutetodo de
trabalho no qual seraacute descrita a interaccedilatildeo ideal entre o modelador e a soluccedilatildeo proposta
31 Meacutetodo de Trabalho
Numa interaccedilatildeo ideal o modelador teria controlo absoluto sobre os meacutetodos de geraccedilatildeo proce-
dimental e seria possiacutevel modelar procedimentalmente sobre alteraccedilotildees manuais realizadas sobre
o objeto No entanto nem sempre eacute desejado esse niacutevel de controlo e interligaccedilatildeo entre as aborda-
gens Imaginando a modelaccedilatildeo de um edifiacutecio este eacute construiacutedo segundo meacutetodos procedimentais
e recebe como entrada um poliacutegono que delimita a fundaccedilatildeo assim como paracircmetros numeacutericos e
booleanos que definem a geometria resultante Depois de modelado procedimentalmente o objeto
eacute adicionado ao ambiente de modelaccedilatildeo manual onde o modelador pode realizar alteraccedilotildees em
detalhes na geometria ou mesmo alteraccedilotildees profundas na geometria do mesmo
15
Metodologia
Considerando uma situaccedilatildeo em que o modelador realizou alteraccedilotildees profundas na geometria
produzida como por exemplo a reparticcedilatildeo de uma das fachadas do edifiacutecio em trecircs fachadas
Assim que realizadas estas alteraccedilotildees o utilizador pretende alterar a altura do edifiacutecio alterando o
paracircmetro correspondente e requisitando uma atualizaccedilatildeo Para ser possiacutevel manter as alteraccedilotildees
realizadas manualmente e em simultacircneo respeitar as regras definidas pela geraccedilatildeo procedimen-
tal seria necessaacuterio converter estas alteraccedilotildees em regras possiacuteveis de definir no escopo do ambiente
de geraccedilatildeo procedimental
De qualquer das formas as alteraccedilotildees realizadas no ponto anterior podem simplesmente natildeo
fazer sentido apoacutes a aplicaccedilatildeo sobre o objeto que foi reproduzido seguindo as regras definias
por um procedimento Devido a esta limitaccedilatildeo eacute assumido que assim que o utilizador requisita
uma nova execuccedilatildeo de um procedimento o qual natildeo tem problemas em descartar as alteraccedilotildees
executadas manualmente sobre o objeto em questatildeo
Tendo em consideraccedilatildeo esta limitaccedilatildeo eacute possiacutevel estruturar um fluxo de trabalho que melhor
explore as vantagens e limitaccedilotildees de ambas as abordagens de geraccedilatildeo de conteuacutedo tridimensional
O utilizador tem uma panoacuteplia de conteuacutedos procedimentais ao seu dispor que podem ser definidas
via paracircmetros numeacutericos e geomeacutetricos O conteuacutedo eacute adicionado ao ambiente de modelaccedilatildeo ma-
nual e os paracircmetros podem ainda ser editados alterados ao custo de que as modificaccedilotildees manuais
realizadas sobre o objeto sejam descartadas
32 Metodologias de Interaccedilatildeo com o Utilizador
Em relaccedilatildeo agrave interaccedilatildeo com o utilizador foram estudadas trecircs abordagens para a interaccedilatildeo com
meacutetodos de geraccedilatildeo procedimental em ambiente de modelaccedilatildeo manual
321 Modificadores
O conceito de modificadores eacute jaacute utilizado em ambientes de modelaccedilatildeo manual eg no Blen-
der [Bap14 Ble15e] onde satildeo utilizados para realizar operaccedilotildees sobre objetos na cena sem destruir
a geometria subjacente apenas modificam a forma como os objetos satildeo percecionados pelo motor
de renderizaccedilatildeo Esta abordagem eacute uacutetil em situaccedilotildees onde o procedimento a ser executado en-
volve modificaccedilotildees sobre uma geometria base como tal permitindo realizar muacuteltiplas alteraccedilotildees
sobre um objeto podendo estas ser facilmente canceladas recuperando o objeto original No en-
tanto nem todos os recursos de geraccedilatildeo procedimental incidem sobre modificaccedilatildeo de geometria
Os meios de geraccedilatildeo procedimental em muitas situaccedilotildees produzem objetos e cenaacuterios uacutenicos e
independentes de qualquer geometria de entrada
322 Grafos
A abordagem de interaccedilatildeo via grafos eacute atualmente utilizada num ambiente de modelaccedilatildeo ma-
nual para a ediccedilatildeo de materiais [Ble15d] Tambeacutem chamada de Flow-Based Programming esta
16
Metodologia
abordagem permite apresentar ao utilizador os procedimentos como uma caixa negra com pos-
siacuteveis entradas e saiacutedas representadas como ligaccedilotildees de fluxo A correspondente utilizaccedilatildeo na
interaccedilatildeo com geraccedilatildeo procedimental pode permitir o encadeamento de muacuteltiplos procedimentos
No entanto a abordagem pode ser mais trabalhosa para o utilizador introduzindo um niacutevel de
interaccedilatildeo adicional para cada objeto introduzido na cena
323 Funccedilotildees
Esta abordagem disponibiliza ao utilizador cada recurso de geraccedilatildeo procedimental como uma
funccedilatildeo disponiacutevel a qualquer momento na interface da ferramenta de modelaccedilatildeo manual Aquando
da respetiva invocaccedilatildeo satildeo requisitados aos utilizadores os paracircmetros necessaacuterios agrave execuccedilatildeo
A abordagem em causa eacute potencialmente a mais faacutecil de adotar por parte dos utilizadores de
ferramentas de modelaccedilatildeo manual Devido agrave simplicidade na interaccedilatildeo assim como a reduzida
necessidade de tempo e recursos para a implementaccedilatildeo esta foi a abordagem de interaccedilatildeo utilizada
na soluccedilatildeo desenvolvida
33 Arquitetura da Soluccedilatildeo
Para abordar este problema eacute proposta a utilizaccedilatildeo de duas aplicaccedilotildees jaacute presentes no mer-
cado Uma aplicaccedilatildeo dedicada agrave modelaccedilatildeo procedimental e uma aplicaccedilatildeo de modelaccedilatildeo manual
Foi escolhida esta abordagem na medida em que eacute possiacutevel utilizar duas aplicaccedilotildees jaacute existentes
sendo possiacutevel dessa forma aproveitar os pontos fortes de cada soluccedilatildeo com o intuito de otimi-
zar o processo de criaccedilatildeo de novos cenaacuterios e conteuacutedo tridimensional Esta abordagem pode ser
representada como uma soluccedilatildeo estruturada numa arquitetura Cliente-Servidor em que a aplica-
ccedilatildeo de geraccedilatildeo procedimental eacute capaz de fornecer serviccedilos de geraccedilatildeo de conteuacutedo a um ou mais
clientes de modelaccedilatildeo Esta abordagem interliga as duas aplicaccedilotildees atraveacutes de um protocolo de
comunicaccedilatildeo Este permite ao utilizador da ferramenta de modelaccedilatildeo manual requisitar a produ-
ccedilatildeo de conteuacutedo seguindo os valores impostos pelo utilizador nos paracircmetros do procedimento
requisitado O protocolo eacute descrito em maior detalhe na secccedilatildeo 34
331 Vantagens
Faacutecil integraccedilatildeo em diferentes plataformas Devido agrave arquitetura ser baseada na comunicaccedilatildeo
entre duas aplicaccedilotildees por um protocolo de comunicaccedilatildeo geneacuterico eacute com alguma facili-
dade que se realiza a interligaccedilatildeo com diferentes soluccedilotildees de geraccedilatildeo procedimental ou de
modelaccedilatildeo manual Sendo assim possiacutevel a expansatildeo para novos ambientes de modelaccedilatildeo
manual ou mesmo introduzir novas soluccedilotildees de geraccedilatildeo procedimental
Escalabilidade A arquitetura proposta poderaacute permitir que esta seja implementada de modo a que
um servidor central de geraccedilatildeo procedimental sirva por exemplo num ambiente empresa-
rial como um repositoacuterio de recursos de geraccedilatildeo de conteuacutedos desta forma permitindo
17
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Estado da Arte e Trabalhos Relacionados
2112 Estradas
Num esforccedilo de melhorar a interaccedilatildeo com path layouts Singh et al [SM08] desenvolveram a
ferramenta Drive que permite a conceptualizaccedilatildeo de redes rodoviaacuterias tridimensionais por meio
de esboccedilos que satildeo posteriormente aproximados a clotoacuteides (Curvas em que o raio varia line-
armente) Com esta abordagem eacute possiacutevel produzir itineraacuterios em que as transiccedilotildees entre raios
de curvatura satildeo lineares tornando-os assim adequados para a conduccedilatildeo A ferramenta tambeacutem
introduz Terrain sensitive sketching que por meios automaacuteticos coloca sinalizaccedilatildeo no percurso e
vegetaccedilatildeo nas redondezas
2113 Vegetaccedilatildeo
Figura 22 Crescimento de vegetaccedilatildeo seguindo um eixo esboccedilado pelo utilizador por Ijiri et al[IOI06b IOI06a]
O trabalho de Ijiri et al [IOI06b IOI06a] apresenta uma teacutecnica que atraveacutes de traccedilados defi-
nidos pelo utilizador (Figura 22) permite a manipulaccedilatildeo da direccedilatildeo de crescimento de vegetaccedilatildeo
produzida por L-Systems uma abordagem jaacute muito estudada para a criaccedilatildeo de vegetaccedilatildeo pro-
posta por Lindenmayer [Lin68] como um tipo de gramaacutetica formal capaz de representar padrotildees
e geometria fractal existente na vegetaccedilatildeo Em 1988 foi proposto por Prusinkiewicz [PLH88] a
utilizaccedilatildeo de L-systems para a modelaccedilatildeo de vegetaccedilatildeo Ao longo das ultimas deacutecadas tecircm sido
realizados avanccedilos consideraacuteveis na produccedilatildeo de vegetaccedilatildeo realiacutestica [WP95] e a respetiva inte-
raccedilatildeo com o seu meio ambiente [MP96 Pru00] tentado assim produzir vegetaccedilatildeo que melhor
simule o comportamento fiacutesico e bioloacutegico de vegetaccedilatildeo real
Mais recentemente o trabalho de Palubicky et al [PHL+09] foi expandido e transportado
para uma aplicaccedilatildeo para dispositivos iPad em que o modelador tem um controlo fino sobre o
crescimento de uma aacutervore Utilizando o conceito de tree self-organization Longay et al criaram
7
Estado da Arte e Trabalhos Relacionados
a ferramenta TreeSketch 23 que estimula a competiccedilatildeo entre os ramos de uma aacutervore por espaccedilo
e luz dentro dos paracircmetros e inputs visuais dados pelo utilizador [LRBP12]
Figura 23 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch
212 Editores Visuais
Numa tentativa de melhorar a interaccedilatildeo com modelaccedilatildeo procedimental baseada em gramaacuteticas
[WWSR03 MWH+06] Lipp et al propuseram uma abordagem que permite a manipulaccedilatildeo direta
do resultado produzido por uma gramaacutetica O utilizador pode manipular diretamente no objeto as
respetivas dimensotildees e configuraccedilotildees [LWW08]
Mais recentemente Krecklau et al [KK12] introduziram uma abordagem que permite a ge-
raccedilatildeo de cenas a partir de primitivas de alto niacutevel e a correspondente manipulaccedilatildeo por interaccedilatildeo
direta na cena consequentemente permitindo a utilizadores menos experientes a utilizaccedilatildeo de
gramaacuteticas procedimentais complexas sem a necessidade de interaccedilatildeo textual com as mesmas
2121 Visual Node Based
Editores Visual Node Based satildeo utilizados em muitas aplicaccedilotildees comercias como meio de
dar ao utilizador feedback visual do fluxo de informaccedilatildeo Encontra-se em editores de shaders
[Hol15 Aut15b] editores de animaccedilotildees [Tec15] e em editores de texturas [Cod15] A vasta uti-
lizaccedilatildeo da teacutecnica na aacuterea de produccedilatildeo de conteuacutedo 3D por utilizadores com pouca experiecircncia
de programaccedilatildeo levou a que investigadores a utilizassem para a especificaccedilatildeo de gramaacuteticas de
produccedilatildeo
Nesse contexto Patow [Pat12] desenvolveu uma soluccedilatildeo para a construccedilatildeo e manipulaccedilatildeo de
gramaacuteticas por meio de um editor visual onde noacutes que representam operaccedilotildees geomeacutetricas dos
correspondentes antecessores transmitem o resultado aos noacutes sucessores Na mesma publica-
ccedilatildeo Patow realccedila a importacircncia que esta abordagem acarreta para a modelaccedilatildeo procedimental de
edifiacutecios e admite que existe ainda muito potencial por explorar
8
Estado da Arte e Trabalhos Relacionados
Mais recentemente o trabalho de Silva et al [SMBC13] apresenta uma metodologia de edi-
ccedilatildeo em que grafos podem ser encapsulados em noacutes designados Component capazes de representar
construccedilotildees complexas Os noacutes podem ser facilmente introduzidos noutros grafos e editados por
meio de filtros de fluxo colocados nas arestas ou por restriccedilotildees que auxiliam a especificar a utili-
zaccedilatildeo dos noacutes (Figura 24)
Figura 24 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13]
213 Modelaccedilatildeo Procedimental Invertida
Inverse PM eacute uma teacutecnica em que um dado modelo de entrada eacute aproximado a uma represen-
taccedilatildeo procedimental
Aliaga et al [ARB07] apresenta a reconstruccedilatildeo de edifiacutecios por meio de fotografias Nesta
abordagem o utilizador define os limites das fachadas do edifiacutecio criando uma representaccedilatildeo
minimalista De seguida eacute automaticamente aproximada uma gramaacutetica que melhor representa
o edifiacutecio em questatildeo Com os trabalhos de Šrsquotava et al [ŠBM+10] na parametrizaccedilatildeo de arte
vetorial 2D e de Mitra et al [MGP06] em encontrar simetrias em objetos tridimensionais Bokeloh
et al [BWS10] aplica estes conceitos para a descoberta de simetrias nos objetos e a consequente
aproximaccedilatildeo de gramaacuteticas que definam o objeto em questatildeo
As abordagens atuais focam-se em Modelaccedilatildeo invertida de ambientes urbanos no entanto
Vanegas et al [VGDA+12] demonstram uma metodologia de aproximaccedilatildeo de gramaacuteticas capazes
de representar para aleacutem de edifiacutecios sistemas complexos de vegetaccedilatildeo aproximados a um objeto
jaacute existente
9
Estado da Arte e Trabalhos Relacionados
22 Modelaccedilatildeo 3D Manual
Para a produccedilatildeo de objetos tridimensionais os modeladores utilizam ferramentas dedicadas
que lhes datildeo um controlo total sobre o modelo a ser construiacutedo Estes variam em metaacuteforas de
interface e em puacuteblico alvo Nesta secccedilatildeo vatildeo ser abordadas as teacutecnicas de modelaccedilatildeo atualmente
utilizadas por estas ferramentas e seratildeo listadas as ferramentas existentes no mercado e as respeti-
vas funcionalidades principais
221 Teacutecnicas de Modelaccedilatildeo Manual
2211 Polygon Modelling
Polygon Modelling eacute uma abordagem para a representaccedilatildeo de superfiacutecies tridimensionais utili-
zando poliacutegonos estes satildeo representados por veacutertices e arestas e em grupos formam uma Polygon
Mesh que pode ser armazenada de muacuteltiplas formas [TM06 Bau72 Smi06] Eacute possiacutevel criar ma-
lhas veacutertice a veacutertice manualmente No entanto eacute comum a respetiva manipulaccedilatildeo em software
graacutefico concedendo aos modeladores ferramentas interativas como Blender Autodesk Maya e 3D
Studio Max
Figura 25 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14]
Uma das abordagens mais comuns eacute denominada Box Modelling na qual uma forma geomeacute-
trica considerada uma primitiva (ie cubo esfera cilindro) eacute esculpida iterativamente por pas-
sos de subdivisatildeo do objeto e subsequente manipulaccedilatildeo da geometria ateacute se obter o objeto final
[Jon02 sub14] A figura 25 demonstra da teacutecnica Box Modelling para a modelaccedilatildeo de uma face
Esta abordagem pode ser considerada uma abordagem Subtrativa pois eacute atraveacutes da reduccedilatildeo de um
objeto base que eacute obtido o objeto desejado
10
Estado da Arte e Trabalhos Relacionados
O polygon modelling caracteriza-se pelo controlo direto sobre a colocaccedilatildeo de cada veacutertice de
uma superfiacutecie permitindo dessa forma um controlo fino e preciso sobre o resultado a produzir
2212 NURBS
NURBS ou Non-uniform rational B-spline eacute uma generalizaccedilatildeo de B-Splines e Curvas de Beacute-
zier [KR79 Cab92] um modelo matemaacutetico usado para representar curvas e superfiacutecies com
grande precisatildeo e flexibilidade (Figura 26) Eacute principalmente utilizado em aacutereas da computaccedilatildeo
graacutefica (CAD CAM CAE) onde a precisatildeo dos modelos obtidos eacute muito importante Inicialmente
estudada por Matemaacuteticos como I J Schoenberg [Cob84] foi aplicada em sistemas CAD para a
modelaccedilatildeo na induacutestria Automoacutevel [Beacute83 Beacutez81 Bez68]
Figura 26 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modeloNURBS
2213 Digital Sculpting
Digital Sculpting eacute a adaptaccedilatildeo de teacutecnicas utilizadas para moldar materiais como o barro agrave
modelaccedilatildeo 3D Estas ferramentas permitem ao modelador empurrar puxar polir vincare
adicionar ou remover volume Perry et al [PF01] introduziram Kizamu um dos primeiros passos
na aacuterea do Digital Sculpting Os modelos satildeo representados no que eacute chamado de Adaptively Sam-
pled Distance Fields (ADF) [FPRJ00] que permite representar dados volumeacutetricos que tornam o
processo de Digital Sculpting possiacutevel
222 Ferramentas de Modelaccedilatildeo 3D
2221 Blender
O Blender [ble15a] eacute uma ferramenta profissional de modelaccedilatildeo de coacutedigo aberto desen-
volvida pela Blender Foundation Suporta uma grande variedade de primitivas geomeacutetricas in-
11
Estado da Arte e Trabalhos Relacionados
Figura 27 Interface da ferramenta Blender
cluiacutendo Polygon Meshes curvas de Bezier superfiacutecies NURBS Metaballs e Digital Sculpting
Esta destaca-se por ser gratuita e pela facilidade de criar extensotildees [ble15b] usando a API Python
existente [ble15c] que permite adicionar novas funcionalidades agrave ferramenta
2222 Autodesk Maya
Figura 28 Interface da ferramenta Autodesk Maya
O Autodesk Maya [Aut15b] eacute uma ferramenta de produccedilatildeo de conteuacutedo 3D utilizada nas induacutes-
trias do cinema televisatildeo videojogos e arquitetura Eacute de coacutedigo fechado e a respetiva utilizaccedilatildeo
requer que o utilizador possua uma licenccedila Tal como o Blender o Maya daacute aos modeladores
ferramentas para estes criarem objetos de uma forma interativa 28 Apesar de ser uma ferramenta
versaacutetil e capaz de satisfazer as necessidades de todas induacutestrias acima referidas o Autodesk
Maya tende a ser mais utilizado pela induacutestria do Cinema devido agrave vasta customizaccedilatildeo possiacutevel de
aspetos importantes para esta induacutestria como Animaccedilatildeo e VFX [Aut15c]
12
Estado da Arte e Trabalhos Relacionados
2223 Autodesk 3D Studio Max
O 3D Studio Max [Aut15a] eacute outra ferramenta da Autodesk em muitos aspetos semelhante
ao Maya No entanto o 3DS Max estaacute apenas disponiacutevel para maacutequinas de sistema operativo
Windows e sempre foi mais utilizado pela induacutestria dos videojogos para a criaccedilatildeo de modelos 3D
Tal como o Autodesk Maya este dispotildee de poderosos motores de renderizaccedilatildeo Ray Tracing
2224 Zbrush
O Zbrush [Pix15] eacute uma ferramenta de modelaccedilatildeo 3D baseada nos conceitos de Digital Mo-
delling Daacute ao artista muacuteltiplas Brushes que permitem manipular o objeto a ser definido com
paradigmas transportados de outras aacutereas artiacutesticas Pode tornar mais acessiacutevel para um utilizador
pouco experiente com alguns paradigmas da Computaccedilatildeo Graacutefica a modelaccedilatildeo de objetos com
consideraacutevel detalhe e liberdade artiacutestica [Spe11]
23 Sumaacuterio
Apoacutes o levantamento do estado da arte eacute possiacutevel constatar que as ferramentas de modelaccedilatildeo
manual satildeo a escolha de eleiccedilatildeo para contextos em que o modelador deseja o maior niacutevel controlo
possiacutevel sobre o objeto a ser produzido No entanto considerando ferramentas de modelaccedilatildeo
procedimental tem existido um esforccedilo por parte desta comunidade para tornar a correspondente
experiecircncia de utilizaccedilatildeo mais acessiacutevel a utilizadores pouco familiarizados com o funcionamento
do mesmo Por enquanto a utilizaccedilatildeo deste tipo de ferramentas ainda requer que o conteuacutedo
seja criado em ferramentas dedicadas completamente separadas das ferramentas tradicionais (ie
Maya Blender) essenciais para o trabalho artiacutestico levando a quebras no fluxo de trabalho
13
Estado da Arte e Trabalhos Relacionados
14
Capiacutetulo 3
Metodologia
Com os desenvolvimentos atuais na aacuterea de modelaccedilatildeo procedimental apresentados no capiacute-
tulo 2 eacute possiacutevel verificar que as soluccedilotildees de MP existentes permitem produzir variados tipos de
conteuacutedo tais como terrenos vegetaccedilatildeo edifiacutecios estradas e cidades por outro lado as respeti-
vas integraccedilotildees em ambientes de modelaccedilatildeo manual satildeo algo limitadas ou apenas disponiacuteveis em
ferramentas externas especializadas num uacutenico tipo de conteuacutedo
Da mesma forma como verificado em 21 foram efetuadas vaacuterias tentativas pela comunidade
envolvida em geraccedilatildeo procedimental no sentido a melhorar a interaccedilatildeo com ferramentas dedica-
das agrave geraccedilatildeo procedimental no entanto existe ainda uma grande margem para avanccedilo de uma
integraccedilatildeo geneacuterica destes processos numa ferramenta de modelaccedilatildeo manual Devido agrave falta de
soluccedilotildees que se integrem de forma transparente e acessiacutevel em ambientes de modelaccedilatildeo manual
pretende-se apresentar uma soluccedilatildeo com o objetivo de interligar as duas abordagens neste capiacute-
tulo Inicialmente seraacute apresentada em pormenor a arquitetura da soluccedilatildeo de seguida o protocolo
de comunicaccedilatildeo entre os dois ambientes de modelaccedilatildeo e finalmente seraacute proposto um meacutetodo de
trabalho no qual seraacute descrita a interaccedilatildeo ideal entre o modelador e a soluccedilatildeo proposta
31 Meacutetodo de Trabalho
Numa interaccedilatildeo ideal o modelador teria controlo absoluto sobre os meacutetodos de geraccedilatildeo proce-
dimental e seria possiacutevel modelar procedimentalmente sobre alteraccedilotildees manuais realizadas sobre
o objeto No entanto nem sempre eacute desejado esse niacutevel de controlo e interligaccedilatildeo entre as aborda-
gens Imaginando a modelaccedilatildeo de um edifiacutecio este eacute construiacutedo segundo meacutetodos procedimentais
e recebe como entrada um poliacutegono que delimita a fundaccedilatildeo assim como paracircmetros numeacutericos e
booleanos que definem a geometria resultante Depois de modelado procedimentalmente o objeto
eacute adicionado ao ambiente de modelaccedilatildeo manual onde o modelador pode realizar alteraccedilotildees em
detalhes na geometria ou mesmo alteraccedilotildees profundas na geometria do mesmo
15
Metodologia
Considerando uma situaccedilatildeo em que o modelador realizou alteraccedilotildees profundas na geometria
produzida como por exemplo a reparticcedilatildeo de uma das fachadas do edifiacutecio em trecircs fachadas
Assim que realizadas estas alteraccedilotildees o utilizador pretende alterar a altura do edifiacutecio alterando o
paracircmetro correspondente e requisitando uma atualizaccedilatildeo Para ser possiacutevel manter as alteraccedilotildees
realizadas manualmente e em simultacircneo respeitar as regras definidas pela geraccedilatildeo procedimen-
tal seria necessaacuterio converter estas alteraccedilotildees em regras possiacuteveis de definir no escopo do ambiente
de geraccedilatildeo procedimental
De qualquer das formas as alteraccedilotildees realizadas no ponto anterior podem simplesmente natildeo
fazer sentido apoacutes a aplicaccedilatildeo sobre o objeto que foi reproduzido seguindo as regras definias
por um procedimento Devido a esta limitaccedilatildeo eacute assumido que assim que o utilizador requisita
uma nova execuccedilatildeo de um procedimento o qual natildeo tem problemas em descartar as alteraccedilotildees
executadas manualmente sobre o objeto em questatildeo
Tendo em consideraccedilatildeo esta limitaccedilatildeo eacute possiacutevel estruturar um fluxo de trabalho que melhor
explore as vantagens e limitaccedilotildees de ambas as abordagens de geraccedilatildeo de conteuacutedo tridimensional
O utilizador tem uma panoacuteplia de conteuacutedos procedimentais ao seu dispor que podem ser definidas
via paracircmetros numeacutericos e geomeacutetricos O conteuacutedo eacute adicionado ao ambiente de modelaccedilatildeo ma-
nual e os paracircmetros podem ainda ser editados alterados ao custo de que as modificaccedilotildees manuais
realizadas sobre o objeto sejam descartadas
32 Metodologias de Interaccedilatildeo com o Utilizador
Em relaccedilatildeo agrave interaccedilatildeo com o utilizador foram estudadas trecircs abordagens para a interaccedilatildeo com
meacutetodos de geraccedilatildeo procedimental em ambiente de modelaccedilatildeo manual
321 Modificadores
O conceito de modificadores eacute jaacute utilizado em ambientes de modelaccedilatildeo manual eg no Blen-
der [Bap14 Ble15e] onde satildeo utilizados para realizar operaccedilotildees sobre objetos na cena sem destruir
a geometria subjacente apenas modificam a forma como os objetos satildeo percecionados pelo motor
de renderizaccedilatildeo Esta abordagem eacute uacutetil em situaccedilotildees onde o procedimento a ser executado en-
volve modificaccedilotildees sobre uma geometria base como tal permitindo realizar muacuteltiplas alteraccedilotildees
sobre um objeto podendo estas ser facilmente canceladas recuperando o objeto original No en-
tanto nem todos os recursos de geraccedilatildeo procedimental incidem sobre modificaccedilatildeo de geometria
Os meios de geraccedilatildeo procedimental em muitas situaccedilotildees produzem objetos e cenaacuterios uacutenicos e
independentes de qualquer geometria de entrada
322 Grafos
A abordagem de interaccedilatildeo via grafos eacute atualmente utilizada num ambiente de modelaccedilatildeo ma-
nual para a ediccedilatildeo de materiais [Ble15d] Tambeacutem chamada de Flow-Based Programming esta
16
Metodologia
abordagem permite apresentar ao utilizador os procedimentos como uma caixa negra com pos-
siacuteveis entradas e saiacutedas representadas como ligaccedilotildees de fluxo A correspondente utilizaccedilatildeo na
interaccedilatildeo com geraccedilatildeo procedimental pode permitir o encadeamento de muacuteltiplos procedimentos
No entanto a abordagem pode ser mais trabalhosa para o utilizador introduzindo um niacutevel de
interaccedilatildeo adicional para cada objeto introduzido na cena
323 Funccedilotildees
Esta abordagem disponibiliza ao utilizador cada recurso de geraccedilatildeo procedimental como uma
funccedilatildeo disponiacutevel a qualquer momento na interface da ferramenta de modelaccedilatildeo manual Aquando
da respetiva invocaccedilatildeo satildeo requisitados aos utilizadores os paracircmetros necessaacuterios agrave execuccedilatildeo
A abordagem em causa eacute potencialmente a mais faacutecil de adotar por parte dos utilizadores de
ferramentas de modelaccedilatildeo manual Devido agrave simplicidade na interaccedilatildeo assim como a reduzida
necessidade de tempo e recursos para a implementaccedilatildeo esta foi a abordagem de interaccedilatildeo utilizada
na soluccedilatildeo desenvolvida
33 Arquitetura da Soluccedilatildeo
Para abordar este problema eacute proposta a utilizaccedilatildeo de duas aplicaccedilotildees jaacute presentes no mer-
cado Uma aplicaccedilatildeo dedicada agrave modelaccedilatildeo procedimental e uma aplicaccedilatildeo de modelaccedilatildeo manual
Foi escolhida esta abordagem na medida em que eacute possiacutevel utilizar duas aplicaccedilotildees jaacute existentes
sendo possiacutevel dessa forma aproveitar os pontos fortes de cada soluccedilatildeo com o intuito de otimi-
zar o processo de criaccedilatildeo de novos cenaacuterios e conteuacutedo tridimensional Esta abordagem pode ser
representada como uma soluccedilatildeo estruturada numa arquitetura Cliente-Servidor em que a aplica-
ccedilatildeo de geraccedilatildeo procedimental eacute capaz de fornecer serviccedilos de geraccedilatildeo de conteuacutedo a um ou mais
clientes de modelaccedilatildeo Esta abordagem interliga as duas aplicaccedilotildees atraveacutes de um protocolo de
comunicaccedilatildeo Este permite ao utilizador da ferramenta de modelaccedilatildeo manual requisitar a produ-
ccedilatildeo de conteuacutedo seguindo os valores impostos pelo utilizador nos paracircmetros do procedimento
requisitado O protocolo eacute descrito em maior detalhe na secccedilatildeo 34
331 Vantagens
Faacutecil integraccedilatildeo em diferentes plataformas Devido agrave arquitetura ser baseada na comunicaccedilatildeo
entre duas aplicaccedilotildees por um protocolo de comunicaccedilatildeo geneacuterico eacute com alguma facili-
dade que se realiza a interligaccedilatildeo com diferentes soluccedilotildees de geraccedilatildeo procedimental ou de
modelaccedilatildeo manual Sendo assim possiacutevel a expansatildeo para novos ambientes de modelaccedilatildeo
manual ou mesmo introduzir novas soluccedilotildees de geraccedilatildeo procedimental
Escalabilidade A arquitetura proposta poderaacute permitir que esta seja implementada de modo a que
um servidor central de geraccedilatildeo procedimental sirva por exemplo num ambiente empresa-
rial como um repositoacuterio de recursos de geraccedilatildeo de conteuacutedos desta forma permitindo
17
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Estado da Arte e Trabalhos Relacionados
a ferramenta TreeSketch 23 que estimula a competiccedilatildeo entre os ramos de uma aacutervore por espaccedilo
e luz dentro dos paracircmetros e inputs visuais dados pelo utilizador [LRBP12]
Figura 23 Exemplos de aacutervores geradas com respetivos movimentos na aplicaccedilatildeo Tree Sketch
212 Editores Visuais
Numa tentativa de melhorar a interaccedilatildeo com modelaccedilatildeo procedimental baseada em gramaacuteticas
[WWSR03 MWH+06] Lipp et al propuseram uma abordagem que permite a manipulaccedilatildeo direta
do resultado produzido por uma gramaacutetica O utilizador pode manipular diretamente no objeto as
respetivas dimensotildees e configuraccedilotildees [LWW08]
Mais recentemente Krecklau et al [KK12] introduziram uma abordagem que permite a ge-
raccedilatildeo de cenas a partir de primitivas de alto niacutevel e a correspondente manipulaccedilatildeo por interaccedilatildeo
direta na cena consequentemente permitindo a utilizadores menos experientes a utilizaccedilatildeo de
gramaacuteticas procedimentais complexas sem a necessidade de interaccedilatildeo textual com as mesmas
2121 Visual Node Based
Editores Visual Node Based satildeo utilizados em muitas aplicaccedilotildees comercias como meio de
dar ao utilizador feedback visual do fluxo de informaccedilatildeo Encontra-se em editores de shaders
[Hol15 Aut15b] editores de animaccedilotildees [Tec15] e em editores de texturas [Cod15] A vasta uti-
lizaccedilatildeo da teacutecnica na aacuterea de produccedilatildeo de conteuacutedo 3D por utilizadores com pouca experiecircncia
de programaccedilatildeo levou a que investigadores a utilizassem para a especificaccedilatildeo de gramaacuteticas de
produccedilatildeo
Nesse contexto Patow [Pat12] desenvolveu uma soluccedilatildeo para a construccedilatildeo e manipulaccedilatildeo de
gramaacuteticas por meio de um editor visual onde noacutes que representam operaccedilotildees geomeacutetricas dos
correspondentes antecessores transmitem o resultado aos noacutes sucessores Na mesma publica-
ccedilatildeo Patow realccedila a importacircncia que esta abordagem acarreta para a modelaccedilatildeo procedimental de
edifiacutecios e admite que existe ainda muito potencial por explorar
8
Estado da Arte e Trabalhos Relacionados
Mais recentemente o trabalho de Silva et al [SMBC13] apresenta uma metodologia de edi-
ccedilatildeo em que grafos podem ser encapsulados em noacutes designados Component capazes de representar
construccedilotildees complexas Os noacutes podem ser facilmente introduzidos noutros grafos e editados por
meio de filtros de fluxo colocados nas arestas ou por restriccedilotildees que auxiliam a especificar a utili-
zaccedilatildeo dos noacutes (Figura 24)
Figura 24 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13]
213 Modelaccedilatildeo Procedimental Invertida
Inverse PM eacute uma teacutecnica em que um dado modelo de entrada eacute aproximado a uma represen-
taccedilatildeo procedimental
Aliaga et al [ARB07] apresenta a reconstruccedilatildeo de edifiacutecios por meio de fotografias Nesta
abordagem o utilizador define os limites das fachadas do edifiacutecio criando uma representaccedilatildeo
minimalista De seguida eacute automaticamente aproximada uma gramaacutetica que melhor representa
o edifiacutecio em questatildeo Com os trabalhos de Šrsquotava et al [ŠBM+10] na parametrizaccedilatildeo de arte
vetorial 2D e de Mitra et al [MGP06] em encontrar simetrias em objetos tridimensionais Bokeloh
et al [BWS10] aplica estes conceitos para a descoberta de simetrias nos objetos e a consequente
aproximaccedilatildeo de gramaacuteticas que definam o objeto em questatildeo
As abordagens atuais focam-se em Modelaccedilatildeo invertida de ambientes urbanos no entanto
Vanegas et al [VGDA+12] demonstram uma metodologia de aproximaccedilatildeo de gramaacuteticas capazes
de representar para aleacutem de edifiacutecios sistemas complexos de vegetaccedilatildeo aproximados a um objeto
jaacute existente
9
Estado da Arte e Trabalhos Relacionados
22 Modelaccedilatildeo 3D Manual
Para a produccedilatildeo de objetos tridimensionais os modeladores utilizam ferramentas dedicadas
que lhes datildeo um controlo total sobre o modelo a ser construiacutedo Estes variam em metaacuteforas de
interface e em puacuteblico alvo Nesta secccedilatildeo vatildeo ser abordadas as teacutecnicas de modelaccedilatildeo atualmente
utilizadas por estas ferramentas e seratildeo listadas as ferramentas existentes no mercado e as respeti-
vas funcionalidades principais
221 Teacutecnicas de Modelaccedilatildeo Manual
2211 Polygon Modelling
Polygon Modelling eacute uma abordagem para a representaccedilatildeo de superfiacutecies tridimensionais utili-
zando poliacutegonos estes satildeo representados por veacutertices e arestas e em grupos formam uma Polygon
Mesh que pode ser armazenada de muacuteltiplas formas [TM06 Bau72 Smi06] Eacute possiacutevel criar ma-
lhas veacutertice a veacutertice manualmente No entanto eacute comum a respetiva manipulaccedilatildeo em software
graacutefico concedendo aos modeladores ferramentas interativas como Blender Autodesk Maya e 3D
Studio Max
Figura 25 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14]
Uma das abordagens mais comuns eacute denominada Box Modelling na qual uma forma geomeacute-
trica considerada uma primitiva (ie cubo esfera cilindro) eacute esculpida iterativamente por pas-
sos de subdivisatildeo do objeto e subsequente manipulaccedilatildeo da geometria ateacute se obter o objeto final
[Jon02 sub14] A figura 25 demonstra da teacutecnica Box Modelling para a modelaccedilatildeo de uma face
Esta abordagem pode ser considerada uma abordagem Subtrativa pois eacute atraveacutes da reduccedilatildeo de um
objeto base que eacute obtido o objeto desejado
10
Estado da Arte e Trabalhos Relacionados
O polygon modelling caracteriza-se pelo controlo direto sobre a colocaccedilatildeo de cada veacutertice de
uma superfiacutecie permitindo dessa forma um controlo fino e preciso sobre o resultado a produzir
2212 NURBS
NURBS ou Non-uniform rational B-spline eacute uma generalizaccedilatildeo de B-Splines e Curvas de Beacute-
zier [KR79 Cab92] um modelo matemaacutetico usado para representar curvas e superfiacutecies com
grande precisatildeo e flexibilidade (Figura 26) Eacute principalmente utilizado em aacutereas da computaccedilatildeo
graacutefica (CAD CAM CAE) onde a precisatildeo dos modelos obtidos eacute muito importante Inicialmente
estudada por Matemaacuteticos como I J Schoenberg [Cob84] foi aplicada em sistemas CAD para a
modelaccedilatildeo na induacutestria Automoacutevel [Beacute83 Beacutez81 Bez68]
Figura 26 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modeloNURBS
2213 Digital Sculpting
Digital Sculpting eacute a adaptaccedilatildeo de teacutecnicas utilizadas para moldar materiais como o barro agrave
modelaccedilatildeo 3D Estas ferramentas permitem ao modelador empurrar puxar polir vincare
adicionar ou remover volume Perry et al [PF01] introduziram Kizamu um dos primeiros passos
na aacuterea do Digital Sculpting Os modelos satildeo representados no que eacute chamado de Adaptively Sam-
pled Distance Fields (ADF) [FPRJ00] que permite representar dados volumeacutetricos que tornam o
processo de Digital Sculpting possiacutevel
222 Ferramentas de Modelaccedilatildeo 3D
2221 Blender
O Blender [ble15a] eacute uma ferramenta profissional de modelaccedilatildeo de coacutedigo aberto desen-
volvida pela Blender Foundation Suporta uma grande variedade de primitivas geomeacutetricas in-
11
Estado da Arte e Trabalhos Relacionados
Figura 27 Interface da ferramenta Blender
cluiacutendo Polygon Meshes curvas de Bezier superfiacutecies NURBS Metaballs e Digital Sculpting
Esta destaca-se por ser gratuita e pela facilidade de criar extensotildees [ble15b] usando a API Python
existente [ble15c] que permite adicionar novas funcionalidades agrave ferramenta
2222 Autodesk Maya
Figura 28 Interface da ferramenta Autodesk Maya
O Autodesk Maya [Aut15b] eacute uma ferramenta de produccedilatildeo de conteuacutedo 3D utilizada nas induacutes-
trias do cinema televisatildeo videojogos e arquitetura Eacute de coacutedigo fechado e a respetiva utilizaccedilatildeo
requer que o utilizador possua uma licenccedila Tal como o Blender o Maya daacute aos modeladores
ferramentas para estes criarem objetos de uma forma interativa 28 Apesar de ser uma ferramenta
versaacutetil e capaz de satisfazer as necessidades de todas induacutestrias acima referidas o Autodesk
Maya tende a ser mais utilizado pela induacutestria do Cinema devido agrave vasta customizaccedilatildeo possiacutevel de
aspetos importantes para esta induacutestria como Animaccedilatildeo e VFX [Aut15c]
12
Estado da Arte e Trabalhos Relacionados
2223 Autodesk 3D Studio Max
O 3D Studio Max [Aut15a] eacute outra ferramenta da Autodesk em muitos aspetos semelhante
ao Maya No entanto o 3DS Max estaacute apenas disponiacutevel para maacutequinas de sistema operativo
Windows e sempre foi mais utilizado pela induacutestria dos videojogos para a criaccedilatildeo de modelos 3D
Tal como o Autodesk Maya este dispotildee de poderosos motores de renderizaccedilatildeo Ray Tracing
2224 Zbrush
O Zbrush [Pix15] eacute uma ferramenta de modelaccedilatildeo 3D baseada nos conceitos de Digital Mo-
delling Daacute ao artista muacuteltiplas Brushes que permitem manipular o objeto a ser definido com
paradigmas transportados de outras aacutereas artiacutesticas Pode tornar mais acessiacutevel para um utilizador
pouco experiente com alguns paradigmas da Computaccedilatildeo Graacutefica a modelaccedilatildeo de objetos com
consideraacutevel detalhe e liberdade artiacutestica [Spe11]
23 Sumaacuterio
Apoacutes o levantamento do estado da arte eacute possiacutevel constatar que as ferramentas de modelaccedilatildeo
manual satildeo a escolha de eleiccedilatildeo para contextos em que o modelador deseja o maior niacutevel controlo
possiacutevel sobre o objeto a ser produzido No entanto considerando ferramentas de modelaccedilatildeo
procedimental tem existido um esforccedilo por parte desta comunidade para tornar a correspondente
experiecircncia de utilizaccedilatildeo mais acessiacutevel a utilizadores pouco familiarizados com o funcionamento
do mesmo Por enquanto a utilizaccedilatildeo deste tipo de ferramentas ainda requer que o conteuacutedo
seja criado em ferramentas dedicadas completamente separadas das ferramentas tradicionais (ie
Maya Blender) essenciais para o trabalho artiacutestico levando a quebras no fluxo de trabalho
13
Estado da Arte e Trabalhos Relacionados
14
Capiacutetulo 3
Metodologia
Com os desenvolvimentos atuais na aacuterea de modelaccedilatildeo procedimental apresentados no capiacute-
tulo 2 eacute possiacutevel verificar que as soluccedilotildees de MP existentes permitem produzir variados tipos de
conteuacutedo tais como terrenos vegetaccedilatildeo edifiacutecios estradas e cidades por outro lado as respeti-
vas integraccedilotildees em ambientes de modelaccedilatildeo manual satildeo algo limitadas ou apenas disponiacuteveis em
ferramentas externas especializadas num uacutenico tipo de conteuacutedo
Da mesma forma como verificado em 21 foram efetuadas vaacuterias tentativas pela comunidade
envolvida em geraccedilatildeo procedimental no sentido a melhorar a interaccedilatildeo com ferramentas dedica-
das agrave geraccedilatildeo procedimental no entanto existe ainda uma grande margem para avanccedilo de uma
integraccedilatildeo geneacuterica destes processos numa ferramenta de modelaccedilatildeo manual Devido agrave falta de
soluccedilotildees que se integrem de forma transparente e acessiacutevel em ambientes de modelaccedilatildeo manual
pretende-se apresentar uma soluccedilatildeo com o objetivo de interligar as duas abordagens neste capiacute-
tulo Inicialmente seraacute apresentada em pormenor a arquitetura da soluccedilatildeo de seguida o protocolo
de comunicaccedilatildeo entre os dois ambientes de modelaccedilatildeo e finalmente seraacute proposto um meacutetodo de
trabalho no qual seraacute descrita a interaccedilatildeo ideal entre o modelador e a soluccedilatildeo proposta
31 Meacutetodo de Trabalho
Numa interaccedilatildeo ideal o modelador teria controlo absoluto sobre os meacutetodos de geraccedilatildeo proce-
dimental e seria possiacutevel modelar procedimentalmente sobre alteraccedilotildees manuais realizadas sobre
o objeto No entanto nem sempre eacute desejado esse niacutevel de controlo e interligaccedilatildeo entre as aborda-
gens Imaginando a modelaccedilatildeo de um edifiacutecio este eacute construiacutedo segundo meacutetodos procedimentais
e recebe como entrada um poliacutegono que delimita a fundaccedilatildeo assim como paracircmetros numeacutericos e
booleanos que definem a geometria resultante Depois de modelado procedimentalmente o objeto
eacute adicionado ao ambiente de modelaccedilatildeo manual onde o modelador pode realizar alteraccedilotildees em
detalhes na geometria ou mesmo alteraccedilotildees profundas na geometria do mesmo
15
Metodologia
Considerando uma situaccedilatildeo em que o modelador realizou alteraccedilotildees profundas na geometria
produzida como por exemplo a reparticcedilatildeo de uma das fachadas do edifiacutecio em trecircs fachadas
Assim que realizadas estas alteraccedilotildees o utilizador pretende alterar a altura do edifiacutecio alterando o
paracircmetro correspondente e requisitando uma atualizaccedilatildeo Para ser possiacutevel manter as alteraccedilotildees
realizadas manualmente e em simultacircneo respeitar as regras definidas pela geraccedilatildeo procedimen-
tal seria necessaacuterio converter estas alteraccedilotildees em regras possiacuteveis de definir no escopo do ambiente
de geraccedilatildeo procedimental
De qualquer das formas as alteraccedilotildees realizadas no ponto anterior podem simplesmente natildeo
fazer sentido apoacutes a aplicaccedilatildeo sobre o objeto que foi reproduzido seguindo as regras definias
por um procedimento Devido a esta limitaccedilatildeo eacute assumido que assim que o utilizador requisita
uma nova execuccedilatildeo de um procedimento o qual natildeo tem problemas em descartar as alteraccedilotildees
executadas manualmente sobre o objeto em questatildeo
Tendo em consideraccedilatildeo esta limitaccedilatildeo eacute possiacutevel estruturar um fluxo de trabalho que melhor
explore as vantagens e limitaccedilotildees de ambas as abordagens de geraccedilatildeo de conteuacutedo tridimensional
O utilizador tem uma panoacuteplia de conteuacutedos procedimentais ao seu dispor que podem ser definidas
via paracircmetros numeacutericos e geomeacutetricos O conteuacutedo eacute adicionado ao ambiente de modelaccedilatildeo ma-
nual e os paracircmetros podem ainda ser editados alterados ao custo de que as modificaccedilotildees manuais
realizadas sobre o objeto sejam descartadas
32 Metodologias de Interaccedilatildeo com o Utilizador
Em relaccedilatildeo agrave interaccedilatildeo com o utilizador foram estudadas trecircs abordagens para a interaccedilatildeo com
meacutetodos de geraccedilatildeo procedimental em ambiente de modelaccedilatildeo manual
321 Modificadores
O conceito de modificadores eacute jaacute utilizado em ambientes de modelaccedilatildeo manual eg no Blen-
der [Bap14 Ble15e] onde satildeo utilizados para realizar operaccedilotildees sobre objetos na cena sem destruir
a geometria subjacente apenas modificam a forma como os objetos satildeo percecionados pelo motor
de renderizaccedilatildeo Esta abordagem eacute uacutetil em situaccedilotildees onde o procedimento a ser executado en-
volve modificaccedilotildees sobre uma geometria base como tal permitindo realizar muacuteltiplas alteraccedilotildees
sobre um objeto podendo estas ser facilmente canceladas recuperando o objeto original No en-
tanto nem todos os recursos de geraccedilatildeo procedimental incidem sobre modificaccedilatildeo de geometria
Os meios de geraccedilatildeo procedimental em muitas situaccedilotildees produzem objetos e cenaacuterios uacutenicos e
independentes de qualquer geometria de entrada
322 Grafos
A abordagem de interaccedilatildeo via grafos eacute atualmente utilizada num ambiente de modelaccedilatildeo ma-
nual para a ediccedilatildeo de materiais [Ble15d] Tambeacutem chamada de Flow-Based Programming esta
16
Metodologia
abordagem permite apresentar ao utilizador os procedimentos como uma caixa negra com pos-
siacuteveis entradas e saiacutedas representadas como ligaccedilotildees de fluxo A correspondente utilizaccedilatildeo na
interaccedilatildeo com geraccedilatildeo procedimental pode permitir o encadeamento de muacuteltiplos procedimentos
No entanto a abordagem pode ser mais trabalhosa para o utilizador introduzindo um niacutevel de
interaccedilatildeo adicional para cada objeto introduzido na cena
323 Funccedilotildees
Esta abordagem disponibiliza ao utilizador cada recurso de geraccedilatildeo procedimental como uma
funccedilatildeo disponiacutevel a qualquer momento na interface da ferramenta de modelaccedilatildeo manual Aquando
da respetiva invocaccedilatildeo satildeo requisitados aos utilizadores os paracircmetros necessaacuterios agrave execuccedilatildeo
A abordagem em causa eacute potencialmente a mais faacutecil de adotar por parte dos utilizadores de
ferramentas de modelaccedilatildeo manual Devido agrave simplicidade na interaccedilatildeo assim como a reduzida
necessidade de tempo e recursos para a implementaccedilatildeo esta foi a abordagem de interaccedilatildeo utilizada
na soluccedilatildeo desenvolvida
33 Arquitetura da Soluccedilatildeo
Para abordar este problema eacute proposta a utilizaccedilatildeo de duas aplicaccedilotildees jaacute presentes no mer-
cado Uma aplicaccedilatildeo dedicada agrave modelaccedilatildeo procedimental e uma aplicaccedilatildeo de modelaccedilatildeo manual
Foi escolhida esta abordagem na medida em que eacute possiacutevel utilizar duas aplicaccedilotildees jaacute existentes
sendo possiacutevel dessa forma aproveitar os pontos fortes de cada soluccedilatildeo com o intuito de otimi-
zar o processo de criaccedilatildeo de novos cenaacuterios e conteuacutedo tridimensional Esta abordagem pode ser
representada como uma soluccedilatildeo estruturada numa arquitetura Cliente-Servidor em que a aplica-
ccedilatildeo de geraccedilatildeo procedimental eacute capaz de fornecer serviccedilos de geraccedilatildeo de conteuacutedo a um ou mais
clientes de modelaccedilatildeo Esta abordagem interliga as duas aplicaccedilotildees atraveacutes de um protocolo de
comunicaccedilatildeo Este permite ao utilizador da ferramenta de modelaccedilatildeo manual requisitar a produ-
ccedilatildeo de conteuacutedo seguindo os valores impostos pelo utilizador nos paracircmetros do procedimento
requisitado O protocolo eacute descrito em maior detalhe na secccedilatildeo 34
331 Vantagens
Faacutecil integraccedilatildeo em diferentes plataformas Devido agrave arquitetura ser baseada na comunicaccedilatildeo
entre duas aplicaccedilotildees por um protocolo de comunicaccedilatildeo geneacuterico eacute com alguma facili-
dade que se realiza a interligaccedilatildeo com diferentes soluccedilotildees de geraccedilatildeo procedimental ou de
modelaccedilatildeo manual Sendo assim possiacutevel a expansatildeo para novos ambientes de modelaccedilatildeo
manual ou mesmo introduzir novas soluccedilotildees de geraccedilatildeo procedimental
Escalabilidade A arquitetura proposta poderaacute permitir que esta seja implementada de modo a que
um servidor central de geraccedilatildeo procedimental sirva por exemplo num ambiente empresa-
rial como um repositoacuterio de recursos de geraccedilatildeo de conteuacutedos desta forma permitindo
17
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Estado da Arte e Trabalhos Relacionados
Mais recentemente o trabalho de Silva et al [SMBC13] apresenta uma metodologia de edi-
ccedilatildeo em que grafos podem ser encapsulados em noacutes designados Component capazes de representar
construccedilotildees complexas Os noacutes podem ser facilmente introduzidos noutros grafos e editados por
meio de filtros de fluxo colocados nas arestas ou por restriccedilotildees que auxiliam a especificar a utili-
zaccedilatildeo dos noacutes (Figura 24)
Figura 24 Edifiacutecio e respetivo grafo de componentes com filtros de fluxo [SMBC13]
213 Modelaccedilatildeo Procedimental Invertida
Inverse PM eacute uma teacutecnica em que um dado modelo de entrada eacute aproximado a uma represen-
taccedilatildeo procedimental
Aliaga et al [ARB07] apresenta a reconstruccedilatildeo de edifiacutecios por meio de fotografias Nesta
abordagem o utilizador define os limites das fachadas do edifiacutecio criando uma representaccedilatildeo
minimalista De seguida eacute automaticamente aproximada uma gramaacutetica que melhor representa
o edifiacutecio em questatildeo Com os trabalhos de Šrsquotava et al [ŠBM+10] na parametrizaccedilatildeo de arte
vetorial 2D e de Mitra et al [MGP06] em encontrar simetrias em objetos tridimensionais Bokeloh
et al [BWS10] aplica estes conceitos para a descoberta de simetrias nos objetos e a consequente
aproximaccedilatildeo de gramaacuteticas que definam o objeto em questatildeo
As abordagens atuais focam-se em Modelaccedilatildeo invertida de ambientes urbanos no entanto
Vanegas et al [VGDA+12] demonstram uma metodologia de aproximaccedilatildeo de gramaacuteticas capazes
de representar para aleacutem de edifiacutecios sistemas complexos de vegetaccedilatildeo aproximados a um objeto
jaacute existente
9
Estado da Arte e Trabalhos Relacionados
22 Modelaccedilatildeo 3D Manual
Para a produccedilatildeo de objetos tridimensionais os modeladores utilizam ferramentas dedicadas
que lhes datildeo um controlo total sobre o modelo a ser construiacutedo Estes variam em metaacuteforas de
interface e em puacuteblico alvo Nesta secccedilatildeo vatildeo ser abordadas as teacutecnicas de modelaccedilatildeo atualmente
utilizadas por estas ferramentas e seratildeo listadas as ferramentas existentes no mercado e as respeti-
vas funcionalidades principais
221 Teacutecnicas de Modelaccedilatildeo Manual
2211 Polygon Modelling
Polygon Modelling eacute uma abordagem para a representaccedilatildeo de superfiacutecies tridimensionais utili-
zando poliacutegonos estes satildeo representados por veacutertices e arestas e em grupos formam uma Polygon
Mesh que pode ser armazenada de muacuteltiplas formas [TM06 Bau72 Smi06] Eacute possiacutevel criar ma-
lhas veacutertice a veacutertice manualmente No entanto eacute comum a respetiva manipulaccedilatildeo em software
graacutefico concedendo aos modeladores ferramentas interativas como Blender Autodesk Maya e 3D
Studio Max
Figura 25 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14]
Uma das abordagens mais comuns eacute denominada Box Modelling na qual uma forma geomeacute-
trica considerada uma primitiva (ie cubo esfera cilindro) eacute esculpida iterativamente por pas-
sos de subdivisatildeo do objeto e subsequente manipulaccedilatildeo da geometria ateacute se obter o objeto final
[Jon02 sub14] A figura 25 demonstra da teacutecnica Box Modelling para a modelaccedilatildeo de uma face
Esta abordagem pode ser considerada uma abordagem Subtrativa pois eacute atraveacutes da reduccedilatildeo de um
objeto base que eacute obtido o objeto desejado
10
Estado da Arte e Trabalhos Relacionados
O polygon modelling caracteriza-se pelo controlo direto sobre a colocaccedilatildeo de cada veacutertice de
uma superfiacutecie permitindo dessa forma um controlo fino e preciso sobre o resultado a produzir
2212 NURBS
NURBS ou Non-uniform rational B-spline eacute uma generalizaccedilatildeo de B-Splines e Curvas de Beacute-
zier [KR79 Cab92] um modelo matemaacutetico usado para representar curvas e superfiacutecies com
grande precisatildeo e flexibilidade (Figura 26) Eacute principalmente utilizado em aacutereas da computaccedilatildeo
graacutefica (CAD CAM CAE) onde a precisatildeo dos modelos obtidos eacute muito importante Inicialmente
estudada por Matemaacuteticos como I J Schoenberg [Cob84] foi aplicada em sistemas CAD para a
modelaccedilatildeo na induacutestria Automoacutevel [Beacute83 Beacutez81 Bez68]
Figura 26 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modeloNURBS
2213 Digital Sculpting
Digital Sculpting eacute a adaptaccedilatildeo de teacutecnicas utilizadas para moldar materiais como o barro agrave
modelaccedilatildeo 3D Estas ferramentas permitem ao modelador empurrar puxar polir vincare
adicionar ou remover volume Perry et al [PF01] introduziram Kizamu um dos primeiros passos
na aacuterea do Digital Sculpting Os modelos satildeo representados no que eacute chamado de Adaptively Sam-
pled Distance Fields (ADF) [FPRJ00] que permite representar dados volumeacutetricos que tornam o
processo de Digital Sculpting possiacutevel
222 Ferramentas de Modelaccedilatildeo 3D
2221 Blender
O Blender [ble15a] eacute uma ferramenta profissional de modelaccedilatildeo de coacutedigo aberto desen-
volvida pela Blender Foundation Suporta uma grande variedade de primitivas geomeacutetricas in-
11
Estado da Arte e Trabalhos Relacionados
Figura 27 Interface da ferramenta Blender
cluiacutendo Polygon Meshes curvas de Bezier superfiacutecies NURBS Metaballs e Digital Sculpting
Esta destaca-se por ser gratuita e pela facilidade de criar extensotildees [ble15b] usando a API Python
existente [ble15c] que permite adicionar novas funcionalidades agrave ferramenta
2222 Autodesk Maya
Figura 28 Interface da ferramenta Autodesk Maya
O Autodesk Maya [Aut15b] eacute uma ferramenta de produccedilatildeo de conteuacutedo 3D utilizada nas induacutes-
trias do cinema televisatildeo videojogos e arquitetura Eacute de coacutedigo fechado e a respetiva utilizaccedilatildeo
requer que o utilizador possua uma licenccedila Tal como o Blender o Maya daacute aos modeladores
ferramentas para estes criarem objetos de uma forma interativa 28 Apesar de ser uma ferramenta
versaacutetil e capaz de satisfazer as necessidades de todas induacutestrias acima referidas o Autodesk
Maya tende a ser mais utilizado pela induacutestria do Cinema devido agrave vasta customizaccedilatildeo possiacutevel de
aspetos importantes para esta induacutestria como Animaccedilatildeo e VFX [Aut15c]
12
Estado da Arte e Trabalhos Relacionados
2223 Autodesk 3D Studio Max
O 3D Studio Max [Aut15a] eacute outra ferramenta da Autodesk em muitos aspetos semelhante
ao Maya No entanto o 3DS Max estaacute apenas disponiacutevel para maacutequinas de sistema operativo
Windows e sempre foi mais utilizado pela induacutestria dos videojogos para a criaccedilatildeo de modelos 3D
Tal como o Autodesk Maya este dispotildee de poderosos motores de renderizaccedilatildeo Ray Tracing
2224 Zbrush
O Zbrush [Pix15] eacute uma ferramenta de modelaccedilatildeo 3D baseada nos conceitos de Digital Mo-
delling Daacute ao artista muacuteltiplas Brushes que permitem manipular o objeto a ser definido com
paradigmas transportados de outras aacutereas artiacutesticas Pode tornar mais acessiacutevel para um utilizador
pouco experiente com alguns paradigmas da Computaccedilatildeo Graacutefica a modelaccedilatildeo de objetos com
consideraacutevel detalhe e liberdade artiacutestica [Spe11]
23 Sumaacuterio
Apoacutes o levantamento do estado da arte eacute possiacutevel constatar que as ferramentas de modelaccedilatildeo
manual satildeo a escolha de eleiccedilatildeo para contextos em que o modelador deseja o maior niacutevel controlo
possiacutevel sobre o objeto a ser produzido No entanto considerando ferramentas de modelaccedilatildeo
procedimental tem existido um esforccedilo por parte desta comunidade para tornar a correspondente
experiecircncia de utilizaccedilatildeo mais acessiacutevel a utilizadores pouco familiarizados com o funcionamento
do mesmo Por enquanto a utilizaccedilatildeo deste tipo de ferramentas ainda requer que o conteuacutedo
seja criado em ferramentas dedicadas completamente separadas das ferramentas tradicionais (ie
Maya Blender) essenciais para o trabalho artiacutestico levando a quebras no fluxo de trabalho
13
Estado da Arte e Trabalhos Relacionados
14
Capiacutetulo 3
Metodologia
Com os desenvolvimentos atuais na aacuterea de modelaccedilatildeo procedimental apresentados no capiacute-
tulo 2 eacute possiacutevel verificar que as soluccedilotildees de MP existentes permitem produzir variados tipos de
conteuacutedo tais como terrenos vegetaccedilatildeo edifiacutecios estradas e cidades por outro lado as respeti-
vas integraccedilotildees em ambientes de modelaccedilatildeo manual satildeo algo limitadas ou apenas disponiacuteveis em
ferramentas externas especializadas num uacutenico tipo de conteuacutedo
Da mesma forma como verificado em 21 foram efetuadas vaacuterias tentativas pela comunidade
envolvida em geraccedilatildeo procedimental no sentido a melhorar a interaccedilatildeo com ferramentas dedica-
das agrave geraccedilatildeo procedimental no entanto existe ainda uma grande margem para avanccedilo de uma
integraccedilatildeo geneacuterica destes processos numa ferramenta de modelaccedilatildeo manual Devido agrave falta de
soluccedilotildees que se integrem de forma transparente e acessiacutevel em ambientes de modelaccedilatildeo manual
pretende-se apresentar uma soluccedilatildeo com o objetivo de interligar as duas abordagens neste capiacute-
tulo Inicialmente seraacute apresentada em pormenor a arquitetura da soluccedilatildeo de seguida o protocolo
de comunicaccedilatildeo entre os dois ambientes de modelaccedilatildeo e finalmente seraacute proposto um meacutetodo de
trabalho no qual seraacute descrita a interaccedilatildeo ideal entre o modelador e a soluccedilatildeo proposta
31 Meacutetodo de Trabalho
Numa interaccedilatildeo ideal o modelador teria controlo absoluto sobre os meacutetodos de geraccedilatildeo proce-
dimental e seria possiacutevel modelar procedimentalmente sobre alteraccedilotildees manuais realizadas sobre
o objeto No entanto nem sempre eacute desejado esse niacutevel de controlo e interligaccedilatildeo entre as aborda-
gens Imaginando a modelaccedilatildeo de um edifiacutecio este eacute construiacutedo segundo meacutetodos procedimentais
e recebe como entrada um poliacutegono que delimita a fundaccedilatildeo assim como paracircmetros numeacutericos e
booleanos que definem a geometria resultante Depois de modelado procedimentalmente o objeto
eacute adicionado ao ambiente de modelaccedilatildeo manual onde o modelador pode realizar alteraccedilotildees em
detalhes na geometria ou mesmo alteraccedilotildees profundas na geometria do mesmo
15
Metodologia
Considerando uma situaccedilatildeo em que o modelador realizou alteraccedilotildees profundas na geometria
produzida como por exemplo a reparticcedilatildeo de uma das fachadas do edifiacutecio em trecircs fachadas
Assim que realizadas estas alteraccedilotildees o utilizador pretende alterar a altura do edifiacutecio alterando o
paracircmetro correspondente e requisitando uma atualizaccedilatildeo Para ser possiacutevel manter as alteraccedilotildees
realizadas manualmente e em simultacircneo respeitar as regras definidas pela geraccedilatildeo procedimen-
tal seria necessaacuterio converter estas alteraccedilotildees em regras possiacuteveis de definir no escopo do ambiente
de geraccedilatildeo procedimental
De qualquer das formas as alteraccedilotildees realizadas no ponto anterior podem simplesmente natildeo
fazer sentido apoacutes a aplicaccedilatildeo sobre o objeto que foi reproduzido seguindo as regras definias
por um procedimento Devido a esta limitaccedilatildeo eacute assumido que assim que o utilizador requisita
uma nova execuccedilatildeo de um procedimento o qual natildeo tem problemas em descartar as alteraccedilotildees
executadas manualmente sobre o objeto em questatildeo
Tendo em consideraccedilatildeo esta limitaccedilatildeo eacute possiacutevel estruturar um fluxo de trabalho que melhor
explore as vantagens e limitaccedilotildees de ambas as abordagens de geraccedilatildeo de conteuacutedo tridimensional
O utilizador tem uma panoacuteplia de conteuacutedos procedimentais ao seu dispor que podem ser definidas
via paracircmetros numeacutericos e geomeacutetricos O conteuacutedo eacute adicionado ao ambiente de modelaccedilatildeo ma-
nual e os paracircmetros podem ainda ser editados alterados ao custo de que as modificaccedilotildees manuais
realizadas sobre o objeto sejam descartadas
32 Metodologias de Interaccedilatildeo com o Utilizador
Em relaccedilatildeo agrave interaccedilatildeo com o utilizador foram estudadas trecircs abordagens para a interaccedilatildeo com
meacutetodos de geraccedilatildeo procedimental em ambiente de modelaccedilatildeo manual
321 Modificadores
O conceito de modificadores eacute jaacute utilizado em ambientes de modelaccedilatildeo manual eg no Blen-
der [Bap14 Ble15e] onde satildeo utilizados para realizar operaccedilotildees sobre objetos na cena sem destruir
a geometria subjacente apenas modificam a forma como os objetos satildeo percecionados pelo motor
de renderizaccedilatildeo Esta abordagem eacute uacutetil em situaccedilotildees onde o procedimento a ser executado en-
volve modificaccedilotildees sobre uma geometria base como tal permitindo realizar muacuteltiplas alteraccedilotildees
sobre um objeto podendo estas ser facilmente canceladas recuperando o objeto original No en-
tanto nem todos os recursos de geraccedilatildeo procedimental incidem sobre modificaccedilatildeo de geometria
Os meios de geraccedilatildeo procedimental em muitas situaccedilotildees produzem objetos e cenaacuterios uacutenicos e
independentes de qualquer geometria de entrada
322 Grafos
A abordagem de interaccedilatildeo via grafos eacute atualmente utilizada num ambiente de modelaccedilatildeo ma-
nual para a ediccedilatildeo de materiais [Ble15d] Tambeacutem chamada de Flow-Based Programming esta
16
Metodologia
abordagem permite apresentar ao utilizador os procedimentos como uma caixa negra com pos-
siacuteveis entradas e saiacutedas representadas como ligaccedilotildees de fluxo A correspondente utilizaccedilatildeo na
interaccedilatildeo com geraccedilatildeo procedimental pode permitir o encadeamento de muacuteltiplos procedimentos
No entanto a abordagem pode ser mais trabalhosa para o utilizador introduzindo um niacutevel de
interaccedilatildeo adicional para cada objeto introduzido na cena
323 Funccedilotildees
Esta abordagem disponibiliza ao utilizador cada recurso de geraccedilatildeo procedimental como uma
funccedilatildeo disponiacutevel a qualquer momento na interface da ferramenta de modelaccedilatildeo manual Aquando
da respetiva invocaccedilatildeo satildeo requisitados aos utilizadores os paracircmetros necessaacuterios agrave execuccedilatildeo
A abordagem em causa eacute potencialmente a mais faacutecil de adotar por parte dos utilizadores de
ferramentas de modelaccedilatildeo manual Devido agrave simplicidade na interaccedilatildeo assim como a reduzida
necessidade de tempo e recursos para a implementaccedilatildeo esta foi a abordagem de interaccedilatildeo utilizada
na soluccedilatildeo desenvolvida
33 Arquitetura da Soluccedilatildeo
Para abordar este problema eacute proposta a utilizaccedilatildeo de duas aplicaccedilotildees jaacute presentes no mer-
cado Uma aplicaccedilatildeo dedicada agrave modelaccedilatildeo procedimental e uma aplicaccedilatildeo de modelaccedilatildeo manual
Foi escolhida esta abordagem na medida em que eacute possiacutevel utilizar duas aplicaccedilotildees jaacute existentes
sendo possiacutevel dessa forma aproveitar os pontos fortes de cada soluccedilatildeo com o intuito de otimi-
zar o processo de criaccedilatildeo de novos cenaacuterios e conteuacutedo tridimensional Esta abordagem pode ser
representada como uma soluccedilatildeo estruturada numa arquitetura Cliente-Servidor em que a aplica-
ccedilatildeo de geraccedilatildeo procedimental eacute capaz de fornecer serviccedilos de geraccedilatildeo de conteuacutedo a um ou mais
clientes de modelaccedilatildeo Esta abordagem interliga as duas aplicaccedilotildees atraveacutes de um protocolo de
comunicaccedilatildeo Este permite ao utilizador da ferramenta de modelaccedilatildeo manual requisitar a produ-
ccedilatildeo de conteuacutedo seguindo os valores impostos pelo utilizador nos paracircmetros do procedimento
requisitado O protocolo eacute descrito em maior detalhe na secccedilatildeo 34
331 Vantagens
Faacutecil integraccedilatildeo em diferentes plataformas Devido agrave arquitetura ser baseada na comunicaccedilatildeo
entre duas aplicaccedilotildees por um protocolo de comunicaccedilatildeo geneacuterico eacute com alguma facili-
dade que se realiza a interligaccedilatildeo com diferentes soluccedilotildees de geraccedilatildeo procedimental ou de
modelaccedilatildeo manual Sendo assim possiacutevel a expansatildeo para novos ambientes de modelaccedilatildeo
manual ou mesmo introduzir novas soluccedilotildees de geraccedilatildeo procedimental
Escalabilidade A arquitetura proposta poderaacute permitir que esta seja implementada de modo a que
um servidor central de geraccedilatildeo procedimental sirva por exemplo num ambiente empresa-
rial como um repositoacuterio de recursos de geraccedilatildeo de conteuacutedos desta forma permitindo
17
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Estado da Arte e Trabalhos Relacionados
22 Modelaccedilatildeo 3D Manual
Para a produccedilatildeo de objetos tridimensionais os modeladores utilizam ferramentas dedicadas
que lhes datildeo um controlo total sobre o modelo a ser construiacutedo Estes variam em metaacuteforas de
interface e em puacuteblico alvo Nesta secccedilatildeo vatildeo ser abordadas as teacutecnicas de modelaccedilatildeo atualmente
utilizadas por estas ferramentas e seratildeo listadas as ferramentas existentes no mercado e as respeti-
vas funcionalidades principais
221 Teacutecnicas de Modelaccedilatildeo Manual
2211 Polygon Modelling
Polygon Modelling eacute uma abordagem para a representaccedilatildeo de superfiacutecies tridimensionais utili-
zando poliacutegonos estes satildeo representados por veacutertices e arestas e em grupos formam uma Polygon
Mesh que pode ser armazenada de muacuteltiplas formas [TM06 Bau72 Smi06] Eacute possiacutevel criar ma-
lhas veacutertice a veacutertice manualmente No entanto eacute comum a respetiva manipulaccedilatildeo em software
graacutefico concedendo aos modeladores ferramentas interativas como Blender Autodesk Maya e 3D
Studio Max
Figura 25 Exemplo de modelaccedilatildeo utilizando a teacutecnica de Box Modelling [sub14]
Uma das abordagens mais comuns eacute denominada Box Modelling na qual uma forma geomeacute-
trica considerada uma primitiva (ie cubo esfera cilindro) eacute esculpida iterativamente por pas-
sos de subdivisatildeo do objeto e subsequente manipulaccedilatildeo da geometria ateacute se obter o objeto final
[Jon02 sub14] A figura 25 demonstra da teacutecnica Box Modelling para a modelaccedilatildeo de uma face
Esta abordagem pode ser considerada uma abordagem Subtrativa pois eacute atraveacutes da reduccedilatildeo de um
objeto base que eacute obtido o objeto desejado
10
Estado da Arte e Trabalhos Relacionados
O polygon modelling caracteriza-se pelo controlo direto sobre a colocaccedilatildeo de cada veacutertice de
uma superfiacutecie permitindo dessa forma um controlo fino e preciso sobre o resultado a produzir
2212 NURBS
NURBS ou Non-uniform rational B-spline eacute uma generalizaccedilatildeo de B-Splines e Curvas de Beacute-
zier [KR79 Cab92] um modelo matemaacutetico usado para representar curvas e superfiacutecies com
grande precisatildeo e flexibilidade (Figura 26) Eacute principalmente utilizado em aacutereas da computaccedilatildeo
graacutefica (CAD CAM CAE) onde a precisatildeo dos modelos obtidos eacute muito importante Inicialmente
estudada por Matemaacuteticos como I J Schoenberg [Cob84] foi aplicada em sistemas CAD para a
modelaccedilatildeo na induacutestria Automoacutevel [Beacute83 Beacutez81 Bez68]
Figura 26 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modeloNURBS
2213 Digital Sculpting
Digital Sculpting eacute a adaptaccedilatildeo de teacutecnicas utilizadas para moldar materiais como o barro agrave
modelaccedilatildeo 3D Estas ferramentas permitem ao modelador empurrar puxar polir vincare
adicionar ou remover volume Perry et al [PF01] introduziram Kizamu um dos primeiros passos
na aacuterea do Digital Sculpting Os modelos satildeo representados no que eacute chamado de Adaptively Sam-
pled Distance Fields (ADF) [FPRJ00] que permite representar dados volumeacutetricos que tornam o
processo de Digital Sculpting possiacutevel
222 Ferramentas de Modelaccedilatildeo 3D
2221 Blender
O Blender [ble15a] eacute uma ferramenta profissional de modelaccedilatildeo de coacutedigo aberto desen-
volvida pela Blender Foundation Suporta uma grande variedade de primitivas geomeacutetricas in-
11
Estado da Arte e Trabalhos Relacionados
Figura 27 Interface da ferramenta Blender
cluiacutendo Polygon Meshes curvas de Bezier superfiacutecies NURBS Metaballs e Digital Sculpting
Esta destaca-se por ser gratuita e pela facilidade de criar extensotildees [ble15b] usando a API Python
existente [ble15c] que permite adicionar novas funcionalidades agrave ferramenta
2222 Autodesk Maya
Figura 28 Interface da ferramenta Autodesk Maya
O Autodesk Maya [Aut15b] eacute uma ferramenta de produccedilatildeo de conteuacutedo 3D utilizada nas induacutes-
trias do cinema televisatildeo videojogos e arquitetura Eacute de coacutedigo fechado e a respetiva utilizaccedilatildeo
requer que o utilizador possua uma licenccedila Tal como o Blender o Maya daacute aos modeladores
ferramentas para estes criarem objetos de uma forma interativa 28 Apesar de ser uma ferramenta
versaacutetil e capaz de satisfazer as necessidades de todas induacutestrias acima referidas o Autodesk
Maya tende a ser mais utilizado pela induacutestria do Cinema devido agrave vasta customizaccedilatildeo possiacutevel de
aspetos importantes para esta induacutestria como Animaccedilatildeo e VFX [Aut15c]
12
Estado da Arte e Trabalhos Relacionados
2223 Autodesk 3D Studio Max
O 3D Studio Max [Aut15a] eacute outra ferramenta da Autodesk em muitos aspetos semelhante
ao Maya No entanto o 3DS Max estaacute apenas disponiacutevel para maacutequinas de sistema operativo
Windows e sempre foi mais utilizado pela induacutestria dos videojogos para a criaccedilatildeo de modelos 3D
Tal como o Autodesk Maya este dispotildee de poderosos motores de renderizaccedilatildeo Ray Tracing
2224 Zbrush
O Zbrush [Pix15] eacute uma ferramenta de modelaccedilatildeo 3D baseada nos conceitos de Digital Mo-
delling Daacute ao artista muacuteltiplas Brushes que permitem manipular o objeto a ser definido com
paradigmas transportados de outras aacutereas artiacutesticas Pode tornar mais acessiacutevel para um utilizador
pouco experiente com alguns paradigmas da Computaccedilatildeo Graacutefica a modelaccedilatildeo de objetos com
consideraacutevel detalhe e liberdade artiacutestica [Spe11]
23 Sumaacuterio
Apoacutes o levantamento do estado da arte eacute possiacutevel constatar que as ferramentas de modelaccedilatildeo
manual satildeo a escolha de eleiccedilatildeo para contextos em que o modelador deseja o maior niacutevel controlo
possiacutevel sobre o objeto a ser produzido No entanto considerando ferramentas de modelaccedilatildeo
procedimental tem existido um esforccedilo por parte desta comunidade para tornar a correspondente
experiecircncia de utilizaccedilatildeo mais acessiacutevel a utilizadores pouco familiarizados com o funcionamento
do mesmo Por enquanto a utilizaccedilatildeo deste tipo de ferramentas ainda requer que o conteuacutedo
seja criado em ferramentas dedicadas completamente separadas das ferramentas tradicionais (ie
Maya Blender) essenciais para o trabalho artiacutestico levando a quebras no fluxo de trabalho
13
Estado da Arte e Trabalhos Relacionados
14
Capiacutetulo 3
Metodologia
Com os desenvolvimentos atuais na aacuterea de modelaccedilatildeo procedimental apresentados no capiacute-
tulo 2 eacute possiacutevel verificar que as soluccedilotildees de MP existentes permitem produzir variados tipos de
conteuacutedo tais como terrenos vegetaccedilatildeo edifiacutecios estradas e cidades por outro lado as respeti-
vas integraccedilotildees em ambientes de modelaccedilatildeo manual satildeo algo limitadas ou apenas disponiacuteveis em
ferramentas externas especializadas num uacutenico tipo de conteuacutedo
Da mesma forma como verificado em 21 foram efetuadas vaacuterias tentativas pela comunidade
envolvida em geraccedilatildeo procedimental no sentido a melhorar a interaccedilatildeo com ferramentas dedica-
das agrave geraccedilatildeo procedimental no entanto existe ainda uma grande margem para avanccedilo de uma
integraccedilatildeo geneacuterica destes processos numa ferramenta de modelaccedilatildeo manual Devido agrave falta de
soluccedilotildees que se integrem de forma transparente e acessiacutevel em ambientes de modelaccedilatildeo manual
pretende-se apresentar uma soluccedilatildeo com o objetivo de interligar as duas abordagens neste capiacute-
tulo Inicialmente seraacute apresentada em pormenor a arquitetura da soluccedilatildeo de seguida o protocolo
de comunicaccedilatildeo entre os dois ambientes de modelaccedilatildeo e finalmente seraacute proposto um meacutetodo de
trabalho no qual seraacute descrita a interaccedilatildeo ideal entre o modelador e a soluccedilatildeo proposta
31 Meacutetodo de Trabalho
Numa interaccedilatildeo ideal o modelador teria controlo absoluto sobre os meacutetodos de geraccedilatildeo proce-
dimental e seria possiacutevel modelar procedimentalmente sobre alteraccedilotildees manuais realizadas sobre
o objeto No entanto nem sempre eacute desejado esse niacutevel de controlo e interligaccedilatildeo entre as aborda-
gens Imaginando a modelaccedilatildeo de um edifiacutecio este eacute construiacutedo segundo meacutetodos procedimentais
e recebe como entrada um poliacutegono que delimita a fundaccedilatildeo assim como paracircmetros numeacutericos e
booleanos que definem a geometria resultante Depois de modelado procedimentalmente o objeto
eacute adicionado ao ambiente de modelaccedilatildeo manual onde o modelador pode realizar alteraccedilotildees em
detalhes na geometria ou mesmo alteraccedilotildees profundas na geometria do mesmo
15
Metodologia
Considerando uma situaccedilatildeo em que o modelador realizou alteraccedilotildees profundas na geometria
produzida como por exemplo a reparticcedilatildeo de uma das fachadas do edifiacutecio em trecircs fachadas
Assim que realizadas estas alteraccedilotildees o utilizador pretende alterar a altura do edifiacutecio alterando o
paracircmetro correspondente e requisitando uma atualizaccedilatildeo Para ser possiacutevel manter as alteraccedilotildees
realizadas manualmente e em simultacircneo respeitar as regras definidas pela geraccedilatildeo procedimen-
tal seria necessaacuterio converter estas alteraccedilotildees em regras possiacuteveis de definir no escopo do ambiente
de geraccedilatildeo procedimental
De qualquer das formas as alteraccedilotildees realizadas no ponto anterior podem simplesmente natildeo
fazer sentido apoacutes a aplicaccedilatildeo sobre o objeto que foi reproduzido seguindo as regras definias
por um procedimento Devido a esta limitaccedilatildeo eacute assumido que assim que o utilizador requisita
uma nova execuccedilatildeo de um procedimento o qual natildeo tem problemas em descartar as alteraccedilotildees
executadas manualmente sobre o objeto em questatildeo
Tendo em consideraccedilatildeo esta limitaccedilatildeo eacute possiacutevel estruturar um fluxo de trabalho que melhor
explore as vantagens e limitaccedilotildees de ambas as abordagens de geraccedilatildeo de conteuacutedo tridimensional
O utilizador tem uma panoacuteplia de conteuacutedos procedimentais ao seu dispor que podem ser definidas
via paracircmetros numeacutericos e geomeacutetricos O conteuacutedo eacute adicionado ao ambiente de modelaccedilatildeo ma-
nual e os paracircmetros podem ainda ser editados alterados ao custo de que as modificaccedilotildees manuais
realizadas sobre o objeto sejam descartadas
32 Metodologias de Interaccedilatildeo com o Utilizador
Em relaccedilatildeo agrave interaccedilatildeo com o utilizador foram estudadas trecircs abordagens para a interaccedilatildeo com
meacutetodos de geraccedilatildeo procedimental em ambiente de modelaccedilatildeo manual
321 Modificadores
O conceito de modificadores eacute jaacute utilizado em ambientes de modelaccedilatildeo manual eg no Blen-
der [Bap14 Ble15e] onde satildeo utilizados para realizar operaccedilotildees sobre objetos na cena sem destruir
a geometria subjacente apenas modificam a forma como os objetos satildeo percecionados pelo motor
de renderizaccedilatildeo Esta abordagem eacute uacutetil em situaccedilotildees onde o procedimento a ser executado en-
volve modificaccedilotildees sobre uma geometria base como tal permitindo realizar muacuteltiplas alteraccedilotildees
sobre um objeto podendo estas ser facilmente canceladas recuperando o objeto original No en-
tanto nem todos os recursos de geraccedilatildeo procedimental incidem sobre modificaccedilatildeo de geometria
Os meios de geraccedilatildeo procedimental em muitas situaccedilotildees produzem objetos e cenaacuterios uacutenicos e
independentes de qualquer geometria de entrada
322 Grafos
A abordagem de interaccedilatildeo via grafos eacute atualmente utilizada num ambiente de modelaccedilatildeo ma-
nual para a ediccedilatildeo de materiais [Ble15d] Tambeacutem chamada de Flow-Based Programming esta
16
Metodologia
abordagem permite apresentar ao utilizador os procedimentos como uma caixa negra com pos-
siacuteveis entradas e saiacutedas representadas como ligaccedilotildees de fluxo A correspondente utilizaccedilatildeo na
interaccedilatildeo com geraccedilatildeo procedimental pode permitir o encadeamento de muacuteltiplos procedimentos
No entanto a abordagem pode ser mais trabalhosa para o utilizador introduzindo um niacutevel de
interaccedilatildeo adicional para cada objeto introduzido na cena
323 Funccedilotildees
Esta abordagem disponibiliza ao utilizador cada recurso de geraccedilatildeo procedimental como uma
funccedilatildeo disponiacutevel a qualquer momento na interface da ferramenta de modelaccedilatildeo manual Aquando
da respetiva invocaccedilatildeo satildeo requisitados aos utilizadores os paracircmetros necessaacuterios agrave execuccedilatildeo
A abordagem em causa eacute potencialmente a mais faacutecil de adotar por parte dos utilizadores de
ferramentas de modelaccedilatildeo manual Devido agrave simplicidade na interaccedilatildeo assim como a reduzida
necessidade de tempo e recursos para a implementaccedilatildeo esta foi a abordagem de interaccedilatildeo utilizada
na soluccedilatildeo desenvolvida
33 Arquitetura da Soluccedilatildeo
Para abordar este problema eacute proposta a utilizaccedilatildeo de duas aplicaccedilotildees jaacute presentes no mer-
cado Uma aplicaccedilatildeo dedicada agrave modelaccedilatildeo procedimental e uma aplicaccedilatildeo de modelaccedilatildeo manual
Foi escolhida esta abordagem na medida em que eacute possiacutevel utilizar duas aplicaccedilotildees jaacute existentes
sendo possiacutevel dessa forma aproveitar os pontos fortes de cada soluccedilatildeo com o intuito de otimi-
zar o processo de criaccedilatildeo de novos cenaacuterios e conteuacutedo tridimensional Esta abordagem pode ser
representada como uma soluccedilatildeo estruturada numa arquitetura Cliente-Servidor em que a aplica-
ccedilatildeo de geraccedilatildeo procedimental eacute capaz de fornecer serviccedilos de geraccedilatildeo de conteuacutedo a um ou mais
clientes de modelaccedilatildeo Esta abordagem interliga as duas aplicaccedilotildees atraveacutes de um protocolo de
comunicaccedilatildeo Este permite ao utilizador da ferramenta de modelaccedilatildeo manual requisitar a produ-
ccedilatildeo de conteuacutedo seguindo os valores impostos pelo utilizador nos paracircmetros do procedimento
requisitado O protocolo eacute descrito em maior detalhe na secccedilatildeo 34
331 Vantagens
Faacutecil integraccedilatildeo em diferentes plataformas Devido agrave arquitetura ser baseada na comunicaccedilatildeo
entre duas aplicaccedilotildees por um protocolo de comunicaccedilatildeo geneacuterico eacute com alguma facili-
dade que se realiza a interligaccedilatildeo com diferentes soluccedilotildees de geraccedilatildeo procedimental ou de
modelaccedilatildeo manual Sendo assim possiacutevel a expansatildeo para novos ambientes de modelaccedilatildeo
manual ou mesmo introduzir novas soluccedilotildees de geraccedilatildeo procedimental
Escalabilidade A arquitetura proposta poderaacute permitir que esta seja implementada de modo a que
um servidor central de geraccedilatildeo procedimental sirva por exemplo num ambiente empresa-
rial como um repositoacuterio de recursos de geraccedilatildeo de conteuacutedos desta forma permitindo
17
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Estado da Arte e Trabalhos Relacionados
O polygon modelling caracteriza-se pelo controlo direto sobre a colocaccedilatildeo de cada veacutertice de
uma superfiacutecie permitindo dessa forma um controlo fino e preciso sobre o resultado a produzir
2212 NURBS
NURBS ou Non-uniform rational B-spline eacute uma generalizaccedilatildeo de B-Splines e Curvas de Beacute-
zier [KR79 Cab92] um modelo matemaacutetico usado para representar curvas e superfiacutecies com
grande precisatildeo e flexibilidade (Figura 26) Eacute principalmente utilizado em aacutereas da computaccedilatildeo
graacutefica (CAD CAM CAE) onde a precisatildeo dos modelos obtidos eacute muito importante Inicialmente
estudada por Matemaacuteticos como I J Schoenberg [Cob84] foi aplicada em sistemas CAD para a
modelaccedilatildeo na induacutestria Automoacutevel [Beacute83 Beacutez81 Bez68]
Figura 26 Exemplo de superfiacutecie com respetivos pontos de controlo criada usada o modeloNURBS
2213 Digital Sculpting
Digital Sculpting eacute a adaptaccedilatildeo de teacutecnicas utilizadas para moldar materiais como o barro agrave
modelaccedilatildeo 3D Estas ferramentas permitem ao modelador empurrar puxar polir vincare
adicionar ou remover volume Perry et al [PF01] introduziram Kizamu um dos primeiros passos
na aacuterea do Digital Sculpting Os modelos satildeo representados no que eacute chamado de Adaptively Sam-
pled Distance Fields (ADF) [FPRJ00] que permite representar dados volumeacutetricos que tornam o
processo de Digital Sculpting possiacutevel
222 Ferramentas de Modelaccedilatildeo 3D
2221 Blender
O Blender [ble15a] eacute uma ferramenta profissional de modelaccedilatildeo de coacutedigo aberto desen-
volvida pela Blender Foundation Suporta uma grande variedade de primitivas geomeacutetricas in-
11
Estado da Arte e Trabalhos Relacionados
Figura 27 Interface da ferramenta Blender
cluiacutendo Polygon Meshes curvas de Bezier superfiacutecies NURBS Metaballs e Digital Sculpting
Esta destaca-se por ser gratuita e pela facilidade de criar extensotildees [ble15b] usando a API Python
existente [ble15c] que permite adicionar novas funcionalidades agrave ferramenta
2222 Autodesk Maya
Figura 28 Interface da ferramenta Autodesk Maya
O Autodesk Maya [Aut15b] eacute uma ferramenta de produccedilatildeo de conteuacutedo 3D utilizada nas induacutes-
trias do cinema televisatildeo videojogos e arquitetura Eacute de coacutedigo fechado e a respetiva utilizaccedilatildeo
requer que o utilizador possua uma licenccedila Tal como o Blender o Maya daacute aos modeladores
ferramentas para estes criarem objetos de uma forma interativa 28 Apesar de ser uma ferramenta
versaacutetil e capaz de satisfazer as necessidades de todas induacutestrias acima referidas o Autodesk
Maya tende a ser mais utilizado pela induacutestria do Cinema devido agrave vasta customizaccedilatildeo possiacutevel de
aspetos importantes para esta induacutestria como Animaccedilatildeo e VFX [Aut15c]
12
Estado da Arte e Trabalhos Relacionados
2223 Autodesk 3D Studio Max
O 3D Studio Max [Aut15a] eacute outra ferramenta da Autodesk em muitos aspetos semelhante
ao Maya No entanto o 3DS Max estaacute apenas disponiacutevel para maacutequinas de sistema operativo
Windows e sempre foi mais utilizado pela induacutestria dos videojogos para a criaccedilatildeo de modelos 3D
Tal como o Autodesk Maya este dispotildee de poderosos motores de renderizaccedilatildeo Ray Tracing
2224 Zbrush
O Zbrush [Pix15] eacute uma ferramenta de modelaccedilatildeo 3D baseada nos conceitos de Digital Mo-
delling Daacute ao artista muacuteltiplas Brushes que permitem manipular o objeto a ser definido com
paradigmas transportados de outras aacutereas artiacutesticas Pode tornar mais acessiacutevel para um utilizador
pouco experiente com alguns paradigmas da Computaccedilatildeo Graacutefica a modelaccedilatildeo de objetos com
consideraacutevel detalhe e liberdade artiacutestica [Spe11]
23 Sumaacuterio
Apoacutes o levantamento do estado da arte eacute possiacutevel constatar que as ferramentas de modelaccedilatildeo
manual satildeo a escolha de eleiccedilatildeo para contextos em que o modelador deseja o maior niacutevel controlo
possiacutevel sobre o objeto a ser produzido No entanto considerando ferramentas de modelaccedilatildeo
procedimental tem existido um esforccedilo por parte desta comunidade para tornar a correspondente
experiecircncia de utilizaccedilatildeo mais acessiacutevel a utilizadores pouco familiarizados com o funcionamento
do mesmo Por enquanto a utilizaccedilatildeo deste tipo de ferramentas ainda requer que o conteuacutedo
seja criado em ferramentas dedicadas completamente separadas das ferramentas tradicionais (ie
Maya Blender) essenciais para o trabalho artiacutestico levando a quebras no fluxo de trabalho
13
Estado da Arte e Trabalhos Relacionados
14
Capiacutetulo 3
Metodologia
Com os desenvolvimentos atuais na aacuterea de modelaccedilatildeo procedimental apresentados no capiacute-
tulo 2 eacute possiacutevel verificar que as soluccedilotildees de MP existentes permitem produzir variados tipos de
conteuacutedo tais como terrenos vegetaccedilatildeo edifiacutecios estradas e cidades por outro lado as respeti-
vas integraccedilotildees em ambientes de modelaccedilatildeo manual satildeo algo limitadas ou apenas disponiacuteveis em
ferramentas externas especializadas num uacutenico tipo de conteuacutedo
Da mesma forma como verificado em 21 foram efetuadas vaacuterias tentativas pela comunidade
envolvida em geraccedilatildeo procedimental no sentido a melhorar a interaccedilatildeo com ferramentas dedica-
das agrave geraccedilatildeo procedimental no entanto existe ainda uma grande margem para avanccedilo de uma
integraccedilatildeo geneacuterica destes processos numa ferramenta de modelaccedilatildeo manual Devido agrave falta de
soluccedilotildees que se integrem de forma transparente e acessiacutevel em ambientes de modelaccedilatildeo manual
pretende-se apresentar uma soluccedilatildeo com o objetivo de interligar as duas abordagens neste capiacute-
tulo Inicialmente seraacute apresentada em pormenor a arquitetura da soluccedilatildeo de seguida o protocolo
de comunicaccedilatildeo entre os dois ambientes de modelaccedilatildeo e finalmente seraacute proposto um meacutetodo de
trabalho no qual seraacute descrita a interaccedilatildeo ideal entre o modelador e a soluccedilatildeo proposta
31 Meacutetodo de Trabalho
Numa interaccedilatildeo ideal o modelador teria controlo absoluto sobre os meacutetodos de geraccedilatildeo proce-
dimental e seria possiacutevel modelar procedimentalmente sobre alteraccedilotildees manuais realizadas sobre
o objeto No entanto nem sempre eacute desejado esse niacutevel de controlo e interligaccedilatildeo entre as aborda-
gens Imaginando a modelaccedilatildeo de um edifiacutecio este eacute construiacutedo segundo meacutetodos procedimentais
e recebe como entrada um poliacutegono que delimita a fundaccedilatildeo assim como paracircmetros numeacutericos e
booleanos que definem a geometria resultante Depois de modelado procedimentalmente o objeto
eacute adicionado ao ambiente de modelaccedilatildeo manual onde o modelador pode realizar alteraccedilotildees em
detalhes na geometria ou mesmo alteraccedilotildees profundas na geometria do mesmo
15
Metodologia
Considerando uma situaccedilatildeo em que o modelador realizou alteraccedilotildees profundas na geometria
produzida como por exemplo a reparticcedilatildeo de uma das fachadas do edifiacutecio em trecircs fachadas
Assim que realizadas estas alteraccedilotildees o utilizador pretende alterar a altura do edifiacutecio alterando o
paracircmetro correspondente e requisitando uma atualizaccedilatildeo Para ser possiacutevel manter as alteraccedilotildees
realizadas manualmente e em simultacircneo respeitar as regras definidas pela geraccedilatildeo procedimen-
tal seria necessaacuterio converter estas alteraccedilotildees em regras possiacuteveis de definir no escopo do ambiente
de geraccedilatildeo procedimental
De qualquer das formas as alteraccedilotildees realizadas no ponto anterior podem simplesmente natildeo
fazer sentido apoacutes a aplicaccedilatildeo sobre o objeto que foi reproduzido seguindo as regras definias
por um procedimento Devido a esta limitaccedilatildeo eacute assumido que assim que o utilizador requisita
uma nova execuccedilatildeo de um procedimento o qual natildeo tem problemas em descartar as alteraccedilotildees
executadas manualmente sobre o objeto em questatildeo
Tendo em consideraccedilatildeo esta limitaccedilatildeo eacute possiacutevel estruturar um fluxo de trabalho que melhor
explore as vantagens e limitaccedilotildees de ambas as abordagens de geraccedilatildeo de conteuacutedo tridimensional
O utilizador tem uma panoacuteplia de conteuacutedos procedimentais ao seu dispor que podem ser definidas
via paracircmetros numeacutericos e geomeacutetricos O conteuacutedo eacute adicionado ao ambiente de modelaccedilatildeo ma-
nual e os paracircmetros podem ainda ser editados alterados ao custo de que as modificaccedilotildees manuais
realizadas sobre o objeto sejam descartadas
32 Metodologias de Interaccedilatildeo com o Utilizador
Em relaccedilatildeo agrave interaccedilatildeo com o utilizador foram estudadas trecircs abordagens para a interaccedilatildeo com
meacutetodos de geraccedilatildeo procedimental em ambiente de modelaccedilatildeo manual
321 Modificadores
O conceito de modificadores eacute jaacute utilizado em ambientes de modelaccedilatildeo manual eg no Blen-
der [Bap14 Ble15e] onde satildeo utilizados para realizar operaccedilotildees sobre objetos na cena sem destruir
a geometria subjacente apenas modificam a forma como os objetos satildeo percecionados pelo motor
de renderizaccedilatildeo Esta abordagem eacute uacutetil em situaccedilotildees onde o procedimento a ser executado en-
volve modificaccedilotildees sobre uma geometria base como tal permitindo realizar muacuteltiplas alteraccedilotildees
sobre um objeto podendo estas ser facilmente canceladas recuperando o objeto original No en-
tanto nem todos os recursos de geraccedilatildeo procedimental incidem sobre modificaccedilatildeo de geometria
Os meios de geraccedilatildeo procedimental em muitas situaccedilotildees produzem objetos e cenaacuterios uacutenicos e
independentes de qualquer geometria de entrada
322 Grafos
A abordagem de interaccedilatildeo via grafos eacute atualmente utilizada num ambiente de modelaccedilatildeo ma-
nual para a ediccedilatildeo de materiais [Ble15d] Tambeacutem chamada de Flow-Based Programming esta
16
Metodologia
abordagem permite apresentar ao utilizador os procedimentos como uma caixa negra com pos-
siacuteveis entradas e saiacutedas representadas como ligaccedilotildees de fluxo A correspondente utilizaccedilatildeo na
interaccedilatildeo com geraccedilatildeo procedimental pode permitir o encadeamento de muacuteltiplos procedimentos
No entanto a abordagem pode ser mais trabalhosa para o utilizador introduzindo um niacutevel de
interaccedilatildeo adicional para cada objeto introduzido na cena
323 Funccedilotildees
Esta abordagem disponibiliza ao utilizador cada recurso de geraccedilatildeo procedimental como uma
funccedilatildeo disponiacutevel a qualquer momento na interface da ferramenta de modelaccedilatildeo manual Aquando
da respetiva invocaccedilatildeo satildeo requisitados aos utilizadores os paracircmetros necessaacuterios agrave execuccedilatildeo
A abordagem em causa eacute potencialmente a mais faacutecil de adotar por parte dos utilizadores de
ferramentas de modelaccedilatildeo manual Devido agrave simplicidade na interaccedilatildeo assim como a reduzida
necessidade de tempo e recursos para a implementaccedilatildeo esta foi a abordagem de interaccedilatildeo utilizada
na soluccedilatildeo desenvolvida
33 Arquitetura da Soluccedilatildeo
Para abordar este problema eacute proposta a utilizaccedilatildeo de duas aplicaccedilotildees jaacute presentes no mer-
cado Uma aplicaccedilatildeo dedicada agrave modelaccedilatildeo procedimental e uma aplicaccedilatildeo de modelaccedilatildeo manual
Foi escolhida esta abordagem na medida em que eacute possiacutevel utilizar duas aplicaccedilotildees jaacute existentes
sendo possiacutevel dessa forma aproveitar os pontos fortes de cada soluccedilatildeo com o intuito de otimi-
zar o processo de criaccedilatildeo de novos cenaacuterios e conteuacutedo tridimensional Esta abordagem pode ser
representada como uma soluccedilatildeo estruturada numa arquitetura Cliente-Servidor em que a aplica-
ccedilatildeo de geraccedilatildeo procedimental eacute capaz de fornecer serviccedilos de geraccedilatildeo de conteuacutedo a um ou mais
clientes de modelaccedilatildeo Esta abordagem interliga as duas aplicaccedilotildees atraveacutes de um protocolo de
comunicaccedilatildeo Este permite ao utilizador da ferramenta de modelaccedilatildeo manual requisitar a produ-
ccedilatildeo de conteuacutedo seguindo os valores impostos pelo utilizador nos paracircmetros do procedimento
requisitado O protocolo eacute descrito em maior detalhe na secccedilatildeo 34
331 Vantagens
Faacutecil integraccedilatildeo em diferentes plataformas Devido agrave arquitetura ser baseada na comunicaccedilatildeo
entre duas aplicaccedilotildees por um protocolo de comunicaccedilatildeo geneacuterico eacute com alguma facili-
dade que se realiza a interligaccedilatildeo com diferentes soluccedilotildees de geraccedilatildeo procedimental ou de
modelaccedilatildeo manual Sendo assim possiacutevel a expansatildeo para novos ambientes de modelaccedilatildeo
manual ou mesmo introduzir novas soluccedilotildees de geraccedilatildeo procedimental
Escalabilidade A arquitetura proposta poderaacute permitir que esta seja implementada de modo a que
um servidor central de geraccedilatildeo procedimental sirva por exemplo num ambiente empresa-
rial como um repositoacuterio de recursos de geraccedilatildeo de conteuacutedos desta forma permitindo
17
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Estado da Arte e Trabalhos Relacionados
Figura 27 Interface da ferramenta Blender
cluiacutendo Polygon Meshes curvas de Bezier superfiacutecies NURBS Metaballs e Digital Sculpting
Esta destaca-se por ser gratuita e pela facilidade de criar extensotildees [ble15b] usando a API Python
existente [ble15c] que permite adicionar novas funcionalidades agrave ferramenta
2222 Autodesk Maya
Figura 28 Interface da ferramenta Autodesk Maya
O Autodesk Maya [Aut15b] eacute uma ferramenta de produccedilatildeo de conteuacutedo 3D utilizada nas induacutes-
trias do cinema televisatildeo videojogos e arquitetura Eacute de coacutedigo fechado e a respetiva utilizaccedilatildeo
requer que o utilizador possua uma licenccedila Tal como o Blender o Maya daacute aos modeladores
ferramentas para estes criarem objetos de uma forma interativa 28 Apesar de ser uma ferramenta
versaacutetil e capaz de satisfazer as necessidades de todas induacutestrias acima referidas o Autodesk
Maya tende a ser mais utilizado pela induacutestria do Cinema devido agrave vasta customizaccedilatildeo possiacutevel de
aspetos importantes para esta induacutestria como Animaccedilatildeo e VFX [Aut15c]
12
Estado da Arte e Trabalhos Relacionados
2223 Autodesk 3D Studio Max
O 3D Studio Max [Aut15a] eacute outra ferramenta da Autodesk em muitos aspetos semelhante
ao Maya No entanto o 3DS Max estaacute apenas disponiacutevel para maacutequinas de sistema operativo
Windows e sempre foi mais utilizado pela induacutestria dos videojogos para a criaccedilatildeo de modelos 3D
Tal como o Autodesk Maya este dispotildee de poderosos motores de renderizaccedilatildeo Ray Tracing
2224 Zbrush
O Zbrush [Pix15] eacute uma ferramenta de modelaccedilatildeo 3D baseada nos conceitos de Digital Mo-
delling Daacute ao artista muacuteltiplas Brushes que permitem manipular o objeto a ser definido com
paradigmas transportados de outras aacutereas artiacutesticas Pode tornar mais acessiacutevel para um utilizador
pouco experiente com alguns paradigmas da Computaccedilatildeo Graacutefica a modelaccedilatildeo de objetos com
consideraacutevel detalhe e liberdade artiacutestica [Spe11]
23 Sumaacuterio
Apoacutes o levantamento do estado da arte eacute possiacutevel constatar que as ferramentas de modelaccedilatildeo
manual satildeo a escolha de eleiccedilatildeo para contextos em que o modelador deseja o maior niacutevel controlo
possiacutevel sobre o objeto a ser produzido No entanto considerando ferramentas de modelaccedilatildeo
procedimental tem existido um esforccedilo por parte desta comunidade para tornar a correspondente
experiecircncia de utilizaccedilatildeo mais acessiacutevel a utilizadores pouco familiarizados com o funcionamento
do mesmo Por enquanto a utilizaccedilatildeo deste tipo de ferramentas ainda requer que o conteuacutedo
seja criado em ferramentas dedicadas completamente separadas das ferramentas tradicionais (ie
Maya Blender) essenciais para o trabalho artiacutestico levando a quebras no fluxo de trabalho
13
Estado da Arte e Trabalhos Relacionados
14
Capiacutetulo 3
Metodologia
Com os desenvolvimentos atuais na aacuterea de modelaccedilatildeo procedimental apresentados no capiacute-
tulo 2 eacute possiacutevel verificar que as soluccedilotildees de MP existentes permitem produzir variados tipos de
conteuacutedo tais como terrenos vegetaccedilatildeo edifiacutecios estradas e cidades por outro lado as respeti-
vas integraccedilotildees em ambientes de modelaccedilatildeo manual satildeo algo limitadas ou apenas disponiacuteveis em
ferramentas externas especializadas num uacutenico tipo de conteuacutedo
Da mesma forma como verificado em 21 foram efetuadas vaacuterias tentativas pela comunidade
envolvida em geraccedilatildeo procedimental no sentido a melhorar a interaccedilatildeo com ferramentas dedica-
das agrave geraccedilatildeo procedimental no entanto existe ainda uma grande margem para avanccedilo de uma
integraccedilatildeo geneacuterica destes processos numa ferramenta de modelaccedilatildeo manual Devido agrave falta de
soluccedilotildees que se integrem de forma transparente e acessiacutevel em ambientes de modelaccedilatildeo manual
pretende-se apresentar uma soluccedilatildeo com o objetivo de interligar as duas abordagens neste capiacute-
tulo Inicialmente seraacute apresentada em pormenor a arquitetura da soluccedilatildeo de seguida o protocolo
de comunicaccedilatildeo entre os dois ambientes de modelaccedilatildeo e finalmente seraacute proposto um meacutetodo de
trabalho no qual seraacute descrita a interaccedilatildeo ideal entre o modelador e a soluccedilatildeo proposta
31 Meacutetodo de Trabalho
Numa interaccedilatildeo ideal o modelador teria controlo absoluto sobre os meacutetodos de geraccedilatildeo proce-
dimental e seria possiacutevel modelar procedimentalmente sobre alteraccedilotildees manuais realizadas sobre
o objeto No entanto nem sempre eacute desejado esse niacutevel de controlo e interligaccedilatildeo entre as aborda-
gens Imaginando a modelaccedilatildeo de um edifiacutecio este eacute construiacutedo segundo meacutetodos procedimentais
e recebe como entrada um poliacutegono que delimita a fundaccedilatildeo assim como paracircmetros numeacutericos e
booleanos que definem a geometria resultante Depois de modelado procedimentalmente o objeto
eacute adicionado ao ambiente de modelaccedilatildeo manual onde o modelador pode realizar alteraccedilotildees em
detalhes na geometria ou mesmo alteraccedilotildees profundas na geometria do mesmo
15
Metodologia
Considerando uma situaccedilatildeo em que o modelador realizou alteraccedilotildees profundas na geometria
produzida como por exemplo a reparticcedilatildeo de uma das fachadas do edifiacutecio em trecircs fachadas
Assim que realizadas estas alteraccedilotildees o utilizador pretende alterar a altura do edifiacutecio alterando o
paracircmetro correspondente e requisitando uma atualizaccedilatildeo Para ser possiacutevel manter as alteraccedilotildees
realizadas manualmente e em simultacircneo respeitar as regras definidas pela geraccedilatildeo procedimen-
tal seria necessaacuterio converter estas alteraccedilotildees em regras possiacuteveis de definir no escopo do ambiente
de geraccedilatildeo procedimental
De qualquer das formas as alteraccedilotildees realizadas no ponto anterior podem simplesmente natildeo
fazer sentido apoacutes a aplicaccedilatildeo sobre o objeto que foi reproduzido seguindo as regras definias
por um procedimento Devido a esta limitaccedilatildeo eacute assumido que assim que o utilizador requisita
uma nova execuccedilatildeo de um procedimento o qual natildeo tem problemas em descartar as alteraccedilotildees
executadas manualmente sobre o objeto em questatildeo
Tendo em consideraccedilatildeo esta limitaccedilatildeo eacute possiacutevel estruturar um fluxo de trabalho que melhor
explore as vantagens e limitaccedilotildees de ambas as abordagens de geraccedilatildeo de conteuacutedo tridimensional
O utilizador tem uma panoacuteplia de conteuacutedos procedimentais ao seu dispor que podem ser definidas
via paracircmetros numeacutericos e geomeacutetricos O conteuacutedo eacute adicionado ao ambiente de modelaccedilatildeo ma-
nual e os paracircmetros podem ainda ser editados alterados ao custo de que as modificaccedilotildees manuais
realizadas sobre o objeto sejam descartadas
32 Metodologias de Interaccedilatildeo com o Utilizador
Em relaccedilatildeo agrave interaccedilatildeo com o utilizador foram estudadas trecircs abordagens para a interaccedilatildeo com
meacutetodos de geraccedilatildeo procedimental em ambiente de modelaccedilatildeo manual
321 Modificadores
O conceito de modificadores eacute jaacute utilizado em ambientes de modelaccedilatildeo manual eg no Blen-
der [Bap14 Ble15e] onde satildeo utilizados para realizar operaccedilotildees sobre objetos na cena sem destruir
a geometria subjacente apenas modificam a forma como os objetos satildeo percecionados pelo motor
de renderizaccedilatildeo Esta abordagem eacute uacutetil em situaccedilotildees onde o procedimento a ser executado en-
volve modificaccedilotildees sobre uma geometria base como tal permitindo realizar muacuteltiplas alteraccedilotildees
sobre um objeto podendo estas ser facilmente canceladas recuperando o objeto original No en-
tanto nem todos os recursos de geraccedilatildeo procedimental incidem sobre modificaccedilatildeo de geometria
Os meios de geraccedilatildeo procedimental em muitas situaccedilotildees produzem objetos e cenaacuterios uacutenicos e
independentes de qualquer geometria de entrada
322 Grafos
A abordagem de interaccedilatildeo via grafos eacute atualmente utilizada num ambiente de modelaccedilatildeo ma-
nual para a ediccedilatildeo de materiais [Ble15d] Tambeacutem chamada de Flow-Based Programming esta
16
Metodologia
abordagem permite apresentar ao utilizador os procedimentos como uma caixa negra com pos-
siacuteveis entradas e saiacutedas representadas como ligaccedilotildees de fluxo A correspondente utilizaccedilatildeo na
interaccedilatildeo com geraccedilatildeo procedimental pode permitir o encadeamento de muacuteltiplos procedimentos
No entanto a abordagem pode ser mais trabalhosa para o utilizador introduzindo um niacutevel de
interaccedilatildeo adicional para cada objeto introduzido na cena
323 Funccedilotildees
Esta abordagem disponibiliza ao utilizador cada recurso de geraccedilatildeo procedimental como uma
funccedilatildeo disponiacutevel a qualquer momento na interface da ferramenta de modelaccedilatildeo manual Aquando
da respetiva invocaccedilatildeo satildeo requisitados aos utilizadores os paracircmetros necessaacuterios agrave execuccedilatildeo
A abordagem em causa eacute potencialmente a mais faacutecil de adotar por parte dos utilizadores de
ferramentas de modelaccedilatildeo manual Devido agrave simplicidade na interaccedilatildeo assim como a reduzida
necessidade de tempo e recursos para a implementaccedilatildeo esta foi a abordagem de interaccedilatildeo utilizada
na soluccedilatildeo desenvolvida
33 Arquitetura da Soluccedilatildeo
Para abordar este problema eacute proposta a utilizaccedilatildeo de duas aplicaccedilotildees jaacute presentes no mer-
cado Uma aplicaccedilatildeo dedicada agrave modelaccedilatildeo procedimental e uma aplicaccedilatildeo de modelaccedilatildeo manual
Foi escolhida esta abordagem na medida em que eacute possiacutevel utilizar duas aplicaccedilotildees jaacute existentes
sendo possiacutevel dessa forma aproveitar os pontos fortes de cada soluccedilatildeo com o intuito de otimi-
zar o processo de criaccedilatildeo de novos cenaacuterios e conteuacutedo tridimensional Esta abordagem pode ser
representada como uma soluccedilatildeo estruturada numa arquitetura Cliente-Servidor em que a aplica-
ccedilatildeo de geraccedilatildeo procedimental eacute capaz de fornecer serviccedilos de geraccedilatildeo de conteuacutedo a um ou mais
clientes de modelaccedilatildeo Esta abordagem interliga as duas aplicaccedilotildees atraveacutes de um protocolo de
comunicaccedilatildeo Este permite ao utilizador da ferramenta de modelaccedilatildeo manual requisitar a produ-
ccedilatildeo de conteuacutedo seguindo os valores impostos pelo utilizador nos paracircmetros do procedimento
requisitado O protocolo eacute descrito em maior detalhe na secccedilatildeo 34
331 Vantagens
Faacutecil integraccedilatildeo em diferentes plataformas Devido agrave arquitetura ser baseada na comunicaccedilatildeo
entre duas aplicaccedilotildees por um protocolo de comunicaccedilatildeo geneacuterico eacute com alguma facili-
dade que se realiza a interligaccedilatildeo com diferentes soluccedilotildees de geraccedilatildeo procedimental ou de
modelaccedilatildeo manual Sendo assim possiacutevel a expansatildeo para novos ambientes de modelaccedilatildeo
manual ou mesmo introduzir novas soluccedilotildees de geraccedilatildeo procedimental
Escalabilidade A arquitetura proposta poderaacute permitir que esta seja implementada de modo a que
um servidor central de geraccedilatildeo procedimental sirva por exemplo num ambiente empresa-
rial como um repositoacuterio de recursos de geraccedilatildeo de conteuacutedos desta forma permitindo
17
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Estado da Arte e Trabalhos Relacionados
2223 Autodesk 3D Studio Max
O 3D Studio Max [Aut15a] eacute outra ferramenta da Autodesk em muitos aspetos semelhante
ao Maya No entanto o 3DS Max estaacute apenas disponiacutevel para maacutequinas de sistema operativo
Windows e sempre foi mais utilizado pela induacutestria dos videojogos para a criaccedilatildeo de modelos 3D
Tal como o Autodesk Maya este dispotildee de poderosos motores de renderizaccedilatildeo Ray Tracing
2224 Zbrush
O Zbrush [Pix15] eacute uma ferramenta de modelaccedilatildeo 3D baseada nos conceitos de Digital Mo-
delling Daacute ao artista muacuteltiplas Brushes que permitem manipular o objeto a ser definido com
paradigmas transportados de outras aacutereas artiacutesticas Pode tornar mais acessiacutevel para um utilizador
pouco experiente com alguns paradigmas da Computaccedilatildeo Graacutefica a modelaccedilatildeo de objetos com
consideraacutevel detalhe e liberdade artiacutestica [Spe11]
23 Sumaacuterio
Apoacutes o levantamento do estado da arte eacute possiacutevel constatar que as ferramentas de modelaccedilatildeo
manual satildeo a escolha de eleiccedilatildeo para contextos em que o modelador deseja o maior niacutevel controlo
possiacutevel sobre o objeto a ser produzido No entanto considerando ferramentas de modelaccedilatildeo
procedimental tem existido um esforccedilo por parte desta comunidade para tornar a correspondente
experiecircncia de utilizaccedilatildeo mais acessiacutevel a utilizadores pouco familiarizados com o funcionamento
do mesmo Por enquanto a utilizaccedilatildeo deste tipo de ferramentas ainda requer que o conteuacutedo
seja criado em ferramentas dedicadas completamente separadas das ferramentas tradicionais (ie
Maya Blender) essenciais para o trabalho artiacutestico levando a quebras no fluxo de trabalho
13
Estado da Arte e Trabalhos Relacionados
14
Capiacutetulo 3
Metodologia
Com os desenvolvimentos atuais na aacuterea de modelaccedilatildeo procedimental apresentados no capiacute-
tulo 2 eacute possiacutevel verificar que as soluccedilotildees de MP existentes permitem produzir variados tipos de
conteuacutedo tais como terrenos vegetaccedilatildeo edifiacutecios estradas e cidades por outro lado as respeti-
vas integraccedilotildees em ambientes de modelaccedilatildeo manual satildeo algo limitadas ou apenas disponiacuteveis em
ferramentas externas especializadas num uacutenico tipo de conteuacutedo
Da mesma forma como verificado em 21 foram efetuadas vaacuterias tentativas pela comunidade
envolvida em geraccedilatildeo procedimental no sentido a melhorar a interaccedilatildeo com ferramentas dedica-
das agrave geraccedilatildeo procedimental no entanto existe ainda uma grande margem para avanccedilo de uma
integraccedilatildeo geneacuterica destes processos numa ferramenta de modelaccedilatildeo manual Devido agrave falta de
soluccedilotildees que se integrem de forma transparente e acessiacutevel em ambientes de modelaccedilatildeo manual
pretende-se apresentar uma soluccedilatildeo com o objetivo de interligar as duas abordagens neste capiacute-
tulo Inicialmente seraacute apresentada em pormenor a arquitetura da soluccedilatildeo de seguida o protocolo
de comunicaccedilatildeo entre os dois ambientes de modelaccedilatildeo e finalmente seraacute proposto um meacutetodo de
trabalho no qual seraacute descrita a interaccedilatildeo ideal entre o modelador e a soluccedilatildeo proposta
31 Meacutetodo de Trabalho
Numa interaccedilatildeo ideal o modelador teria controlo absoluto sobre os meacutetodos de geraccedilatildeo proce-
dimental e seria possiacutevel modelar procedimentalmente sobre alteraccedilotildees manuais realizadas sobre
o objeto No entanto nem sempre eacute desejado esse niacutevel de controlo e interligaccedilatildeo entre as aborda-
gens Imaginando a modelaccedilatildeo de um edifiacutecio este eacute construiacutedo segundo meacutetodos procedimentais
e recebe como entrada um poliacutegono que delimita a fundaccedilatildeo assim como paracircmetros numeacutericos e
booleanos que definem a geometria resultante Depois de modelado procedimentalmente o objeto
eacute adicionado ao ambiente de modelaccedilatildeo manual onde o modelador pode realizar alteraccedilotildees em
detalhes na geometria ou mesmo alteraccedilotildees profundas na geometria do mesmo
15
Metodologia
Considerando uma situaccedilatildeo em que o modelador realizou alteraccedilotildees profundas na geometria
produzida como por exemplo a reparticcedilatildeo de uma das fachadas do edifiacutecio em trecircs fachadas
Assim que realizadas estas alteraccedilotildees o utilizador pretende alterar a altura do edifiacutecio alterando o
paracircmetro correspondente e requisitando uma atualizaccedilatildeo Para ser possiacutevel manter as alteraccedilotildees
realizadas manualmente e em simultacircneo respeitar as regras definidas pela geraccedilatildeo procedimen-
tal seria necessaacuterio converter estas alteraccedilotildees em regras possiacuteveis de definir no escopo do ambiente
de geraccedilatildeo procedimental
De qualquer das formas as alteraccedilotildees realizadas no ponto anterior podem simplesmente natildeo
fazer sentido apoacutes a aplicaccedilatildeo sobre o objeto que foi reproduzido seguindo as regras definias
por um procedimento Devido a esta limitaccedilatildeo eacute assumido que assim que o utilizador requisita
uma nova execuccedilatildeo de um procedimento o qual natildeo tem problemas em descartar as alteraccedilotildees
executadas manualmente sobre o objeto em questatildeo
Tendo em consideraccedilatildeo esta limitaccedilatildeo eacute possiacutevel estruturar um fluxo de trabalho que melhor
explore as vantagens e limitaccedilotildees de ambas as abordagens de geraccedilatildeo de conteuacutedo tridimensional
O utilizador tem uma panoacuteplia de conteuacutedos procedimentais ao seu dispor que podem ser definidas
via paracircmetros numeacutericos e geomeacutetricos O conteuacutedo eacute adicionado ao ambiente de modelaccedilatildeo ma-
nual e os paracircmetros podem ainda ser editados alterados ao custo de que as modificaccedilotildees manuais
realizadas sobre o objeto sejam descartadas
32 Metodologias de Interaccedilatildeo com o Utilizador
Em relaccedilatildeo agrave interaccedilatildeo com o utilizador foram estudadas trecircs abordagens para a interaccedilatildeo com
meacutetodos de geraccedilatildeo procedimental em ambiente de modelaccedilatildeo manual
321 Modificadores
O conceito de modificadores eacute jaacute utilizado em ambientes de modelaccedilatildeo manual eg no Blen-
der [Bap14 Ble15e] onde satildeo utilizados para realizar operaccedilotildees sobre objetos na cena sem destruir
a geometria subjacente apenas modificam a forma como os objetos satildeo percecionados pelo motor
de renderizaccedilatildeo Esta abordagem eacute uacutetil em situaccedilotildees onde o procedimento a ser executado en-
volve modificaccedilotildees sobre uma geometria base como tal permitindo realizar muacuteltiplas alteraccedilotildees
sobre um objeto podendo estas ser facilmente canceladas recuperando o objeto original No en-
tanto nem todos os recursos de geraccedilatildeo procedimental incidem sobre modificaccedilatildeo de geometria
Os meios de geraccedilatildeo procedimental em muitas situaccedilotildees produzem objetos e cenaacuterios uacutenicos e
independentes de qualquer geometria de entrada
322 Grafos
A abordagem de interaccedilatildeo via grafos eacute atualmente utilizada num ambiente de modelaccedilatildeo ma-
nual para a ediccedilatildeo de materiais [Ble15d] Tambeacutem chamada de Flow-Based Programming esta
16
Metodologia
abordagem permite apresentar ao utilizador os procedimentos como uma caixa negra com pos-
siacuteveis entradas e saiacutedas representadas como ligaccedilotildees de fluxo A correspondente utilizaccedilatildeo na
interaccedilatildeo com geraccedilatildeo procedimental pode permitir o encadeamento de muacuteltiplos procedimentos
No entanto a abordagem pode ser mais trabalhosa para o utilizador introduzindo um niacutevel de
interaccedilatildeo adicional para cada objeto introduzido na cena
323 Funccedilotildees
Esta abordagem disponibiliza ao utilizador cada recurso de geraccedilatildeo procedimental como uma
funccedilatildeo disponiacutevel a qualquer momento na interface da ferramenta de modelaccedilatildeo manual Aquando
da respetiva invocaccedilatildeo satildeo requisitados aos utilizadores os paracircmetros necessaacuterios agrave execuccedilatildeo
A abordagem em causa eacute potencialmente a mais faacutecil de adotar por parte dos utilizadores de
ferramentas de modelaccedilatildeo manual Devido agrave simplicidade na interaccedilatildeo assim como a reduzida
necessidade de tempo e recursos para a implementaccedilatildeo esta foi a abordagem de interaccedilatildeo utilizada
na soluccedilatildeo desenvolvida
33 Arquitetura da Soluccedilatildeo
Para abordar este problema eacute proposta a utilizaccedilatildeo de duas aplicaccedilotildees jaacute presentes no mer-
cado Uma aplicaccedilatildeo dedicada agrave modelaccedilatildeo procedimental e uma aplicaccedilatildeo de modelaccedilatildeo manual
Foi escolhida esta abordagem na medida em que eacute possiacutevel utilizar duas aplicaccedilotildees jaacute existentes
sendo possiacutevel dessa forma aproveitar os pontos fortes de cada soluccedilatildeo com o intuito de otimi-
zar o processo de criaccedilatildeo de novos cenaacuterios e conteuacutedo tridimensional Esta abordagem pode ser
representada como uma soluccedilatildeo estruturada numa arquitetura Cliente-Servidor em que a aplica-
ccedilatildeo de geraccedilatildeo procedimental eacute capaz de fornecer serviccedilos de geraccedilatildeo de conteuacutedo a um ou mais
clientes de modelaccedilatildeo Esta abordagem interliga as duas aplicaccedilotildees atraveacutes de um protocolo de
comunicaccedilatildeo Este permite ao utilizador da ferramenta de modelaccedilatildeo manual requisitar a produ-
ccedilatildeo de conteuacutedo seguindo os valores impostos pelo utilizador nos paracircmetros do procedimento
requisitado O protocolo eacute descrito em maior detalhe na secccedilatildeo 34
331 Vantagens
Faacutecil integraccedilatildeo em diferentes plataformas Devido agrave arquitetura ser baseada na comunicaccedilatildeo
entre duas aplicaccedilotildees por um protocolo de comunicaccedilatildeo geneacuterico eacute com alguma facili-
dade que se realiza a interligaccedilatildeo com diferentes soluccedilotildees de geraccedilatildeo procedimental ou de
modelaccedilatildeo manual Sendo assim possiacutevel a expansatildeo para novos ambientes de modelaccedilatildeo
manual ou mesmo introduzir novas soluccedilotildees de geraccedilatildeo procedimental
Escalabilidade A arquitetura proposta poderaacute permitir que esta seja implementada de modo a que
um servidor central de geraccedilatildeo procedimental sirva por exemplo num ambiente empresa-
rial como um repositoacuterio de recursos de geraccedilatildeo de conteuacutedos desta forma permitindo
17
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Estado da Arte e Trabalhos Relacionados
14
Capiacutetulo 3
Metodologia
Com os desenvolvimentos atuais na aacuterea de modelaccedilatildeo procedimental apresentados no capiacute-
tulo 2 eacute possiacutevel verificar que as soluccedilotildees de MP existentes permitem produzir variados tipos de
conteuacutedo tais como terrenos vegetaccedilatildeo edifiacutecios estradas e cidades por outro lado as respeti-
vas integraccedilotildees em ambientes de modelaccedilatildeo manual satildeo algo limitadas ou apenas disponiacuteveis em
ferramentas externas especializadas num uacutenico tipo de conteuacutedo
Da mesma forma como verificado em 21 foram efetuadas vaacuterias tentativas pela comunidade
envolvida em geraccedilatildeo procedimental no sentido a melhorar a interaccedilatildeo com ferramentas dedica-
das agrave geraccedilatildeo procedimental no entanto existe ainda uma grande margem para avanccedilo de uma
integraccedilatildeo geneacuterica destes processos numa ferramenta de modelaccedilatildeo manual Devido agrave falta de
soluccedilotildees que se integrem de forma transparente e acessiacutevel em ambientes de modelaccedilatildeo manual
pretende-se apresentar uma soluccedilatildeo com o objetivo de interligar as duas abordagens neste capiacute-
tulo Inicialmente seraacute apresentada em pormenor a arquitetura da soluccedilatildeo de seguida o protocolo
de comunicaccedilatildeo entre os dois ambientes de modelaccedilatildeo e finalmente seraacute proposto um meacutetodo de
trabalho no qual seraacute descrita a interaccedilatildeo ideal entre o modelador e a soluccedilatildeo proposta
31 Meacutetodo de Trabalho
Numa interaccedilatildeo ideal o modelador teria controlo absoluto sobre os meacutetodos de geraccedilatildeo proce-
dimental e seria possiacutevel modelar procedimentalmente sobre alteraccedilotildees manuais realizadas sobre
o objeto No entanto nem sempre eacute desejado esse niacutevel de controlo e interligaccedilatildeo entre as aborda-
gens Imaginando a modelaccedilatildeo de um edifiacutecio este eacute construiacutedo segundo meacutetodos procedimentais
e recebe como entrada um poliacutegono que delimita a fundaccedilatildeo assim como paracircmetros numeacutericos e
booleanos que definem a geometria resultante Depois de modelado procedimentalmente o objeto
eacute adicionado ao ambiente de modelaccedilatildeo manual onde o modelador pode realizar alteraccedilotildees em
detalhes na geometria ou mesmo alteraccedilotildees profundas na geometria do mesmo
15
Metodologia
Considerando uma situaccedilatildeo em que o modelador realizou alteraccedilotildees profundas na geometria
produzida como por exemplo a reparticcedilatildeo de uma das fachadas do edifiacutecio em trecircs fachadas
Assim que realizadas estas alteraccedilotildees o utilizador pretende alterar a altura do edifiacutecio alterando o
paracircmetro correspondente e requisitando uma atualizaccedilatildeo Para ser possiacutevel manter as alteraccedilotildees
realizadas manualmente e em simultacircneo respeitar as regras definidas pela geraccedilatildeo procedimen-
tal seria necessaacuterio converter estas alteraccedilotildees em regras possiacuteveis de definir no escopo do ambiente
de geraccedilatildeo procedimental
De qualquer das formas as alteraccedilotildees realizadas no ponto anterior podem simplesmente natildeo
fazer sentido apoacutes a aplicaccedilatildeo sobre o objeto que foi reproduzido seguindo as regras definias
por um procedimento Devido a esta limitaccedilatildeo eacute assumido que assim que o utilizador requisita
uma nova execuccedilatildeo de um procedimento o qual natildeo tem problemas em descartar as alteraccedilotildees
executadas manualmente sobre o objeto em questatildeo
Tendo em consideraccedilatildeo esta limitaccedilatildeo eacute possiacutevel estruturar um fluxo de trabalho que melhor
explore as vantagens e limitaccedilotildees de ambas as abordagens de geraccedilatildeo de conteuacutedo tridimensional
O utilizador tem uma panoacuteplia de conteuacutedos procedimentais ao seu dispor que podem ser definidas
via paracircmetros numeacutericos e geomeacutetricos O conteuacutedo eacute adicionado ao ambiente de modelaccedilatildeo ma-
nual e os paracircmetros podem ainda ser editados alterados ao custo de que as modificaccedilotildees manuais
realizadas sobre o objeto sejam descartadas
32 Metodologias de Interaccedilatildeo com o Utilizador
Em relaccedilatildeo agrave interaccedilatildeo com o utilizador foram estudadas trecircs abordagens para a interaccedilatildeo com
meacutetodos de geraccedilatildeo procedimental em ambiente de modelaccedilatildeo manual
321 Modificadores
O conceito de modificadores eacute jaacute utilizado em ambientes de modelaccedilatildeo manual eg no Blen-
der [Bap14 Ble15e] onde satildeo utilizados para realizar operaccedilotildees sobre objetos na cena sem destruir
a geometria subjacente apenas modificam a forma como os objetos satildeo percecionados pelo motor
de renderizaccedilatildeo Esta abordagem eacute uacutetil em situaccedilotildees onde o procedimento a ser executado en-
volve modificaccedilotildees sobre uma geometria base como tal permitindo realizar muacuteltiplas alteraccedilotildees
sobre um objeto podendo estas ser facilmente canceladas recuperando o objeto original No en-
tanto nem todos os recursos de geraccedilatildeo procedimental incidem sobre modificaccedilatildeo de geometria
Os meios de geraccedilatildeo procedimental em muitas situaccedilotildees produzem objetos e cenaacuterios uacutenicos e
independentes de qualquer geometria de entrada
322 Grafos
A abordagem de interaccedilatildeo via grafos eacute atualmente utilizada num ambiente de modelaccedilatildeo ma-
nual para a ediccedilatildeo de materiais [Ble15d] Tambeacutem chamada de Flow-Based Programming esta
16
Metodologia
abordagem permite apresentar ao utilizador os procedimentos como uma caixa negra com pos-
siacuteveis entradas e saiacutedas representadas como ligaccedilotildees de fluxo A correspondente utilizaccedilatildeo na
interaccedilatildeo com geraccedilatildeo procedimental pode permitir o encadeamento de muacuteltiplos procedimentos
No entanto a abordagem pode ser mais trabalhosa para o utilizador introduzindo um niacutevel de
interaccedilatildeo adicional para cada objeto introduzido na cena
323 Funccedilotildees
Esta abordagem disponibiliza ao utilizador cada recurso de geraccedilatildeo procedimental como uma
funccedilatildeo disponiacutevel a qualquer momento na interface da ferramenta de modelaccedilatildeo manual Aquando
da respetiva invocaccedilatildeo satildeo requisitados aos utilizadores os paracircmetros necessaacuterios agrave execuccedilatildeo
A abordagem em causa eacute potencialmente a mais faacutecil de adotar por parte dos utilizadores de
ferramentas de modelaccedilatildeo manual Devido agrave simplicidade na interaccedilatildeo assim como a reduzida
necessidade de tempo e recursos para a implementaccedilatildeo esta foi a abordagem de interaccedilatildeo utilizada
na soluccedilatildeo desenvolvida
33 Arquitetura da Soluccedilatildeo
Para abordar este problema eacute proposta a utilizaccedilatildeo de duas aplicaccedilotildees jaacute presentes no mer-
cado Uma aplicaccedilatildeo dedicada agrave modelaccedilatildeo procedimental e uma aplicaccedilatildeo de modelaccedilatildeo manual
Foi escolhida esta abordagem na medida em que eacute possiacutevel utilizar duas aplicaccedilotildees jaacute existentes
sendo possiacutevel dessa forma aproveitar os pontos fortes de cada soluccedilatildeo com o intuito de otimi-
zar o processo de criaccedilatildeo de novos cenaacuterios e conteuacutedo tridimensional Esta abordagem pode ser
representada como uma soluccedilatildeo estruturada numa arquitetura Cliente-Servidor em que a aplica-
ccedilatildeo de geraccedilatildeo procedimental eacute capaz de fornecer serviccedilos de geraccedilatildeo de conteuacutedo a um ou mais
clientes de modelaccedilatildeo Esta abordagem interliga as duas aplicaccedilotildees atraveacutes de um protocolo de
comunicaccedilatildeo Este permite ao utilizador da ferramenta de modelaccedilatildeo manual requisitar a produ-
ccedilatildeo de conteuacutedo seguindo os valores impostos pelo utilizador nos paracircmetros do procedimento
requisitado O protocolo eacute descrito em maior detalhe na secccedilatildeo 34
331 Vantagens
Faacutecil integraccedilatildeo em diferentes plataformas Devido agrave arquitetura ser baseada na comunicaccedilatildeo
entre duas aplicaccedilotildees por um protocolo de comunicaccedilatildeo geneacuterico eacute com alguma facili-
dade que se realiza a interligaccedilatildeo com diferentes soluccedilotildees de geraccedilatildeo procedimental ou de
modelaccedilatildeo manual Sendo assim possiacutevel a expansatildeo para novos ambientes de modelaccedilatildeo
manual ou mesmo introduzir novas soluccedilotildees de geraccedilatildeo procedimental
Escalabilidade A arquitetura proposta poderaacute permitir que esta seja implementada de modo a que
um servidor central de geraccedilatildeo procedimental sirva por exemplo num ambiente empresa-
rial como um repositoacuterio de recursos de geraccedilatildeo de conteuacutedos desta forma permitindo
17
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Capiacutetulo 3
Metodologia
Com os desenvolvimentos atuais na aacuterea de modelaccedilatildeo procedimental apresentados no capiacute-
tulo 2 eacute possiacutevel verificar que as soluccedilotildees de MP existentes permitem produzir variados tipos de
conteuacutedo tais como terrenos vegetaccedilatildeo edifiacutecios estradas e cidades por outro lado as respeti-
vas integraccedilotildees em ambientes de modelaccedilatildeo manual satildeo algo limitadas ou apenas disponiacuteveis em
ferramentas externas especializadas num uacutenico tipo de conteuacutedo
Da mesma forma como verificado em 21 foram efetuadas vaacuterias tentativas pela comunidade
envolvida em geraccedilatildeo procedimental no sentido a melhorar a interaccedilatildeo com ferramentas dedica-
das agrave geraccedilatildeo procedimental no entanto existe ainda uma grande margem para avanccedilo de uma
integraccedilatildeo geneacuterica destes processos numa ferramenta de modelaccedilatildeo manual Devido agrave falta de
soluccedilotildees que se integrem de forma transparente e acessiacutevel em ambientes de modelaccedilatildeo manual
pretende-se apresentar uma soluccedilatildeo com o objetivo de interligar as duas abordagens neste capiacute-
tulo Inicialmente seraacute apresentada em pormenor a arquitetura da soluccedilatildeo de seguida o protocolo
de comunicaccedilatildeo entre os dois ambientes de modelaccedilatildeo e finalmente seraacute proposto um meacutetodo de
trabalho no qual seraacute descrita a interaccedilatildeo ideal entre o modelador e a soluccedilatildeo proposta
31 Meacutetodo de Trabalho
Numa interaccedilatildeo ideal o modelador teria controlo absoluto sobre os meacutetodos de geraccedilatildeo proce-
dimental e seria possiacutevel modelar procedimentalmente sobre alteraccedilotildees manuais realizadas sobre
o objeto No entanto nem sempre eacute desejado esse niacutevel de controlo e interligaccedilatildeo entre as aborda-
gens Imaginando a modelaccedilatildeo de um edifiacutecio este eacute construiacutedo segundo meacutetodos procedimentais
e recebe como entrada um poliacutegono que delimita a fundaccedilatildeo assim como paracircmetros numeacutericos e
booleanos que definem a geometria resultante Depois de modelado procedimentalmente o objeto
eacute adicionado ao ambiente de modelaccedilatildeo manual onde o modelador pode realizar alteraccedilotildees em
detalhes na geometria ou mesmo alteraccedilotildees profundas na geometria do mesmo
15
Metodologia
Considerando uma situaccedilatildeo em que o modelador realizou alteraccedilotildees profundas na geometria
produzida como por exemplo a reparticcedilatildeo de uma das fachadas do edifiacutecio em trecircs fachadas
Assim que realizadas estas alteraccedilotildees o utilizador pretende alterar a altura do edifiacutecio alterando o
paracircmetro correspondente e requisitando uma atualizaccedilatildeo Para ser possiacutevel manter as alteraccedilotildees
realizadas manualmente e em simultacircneo respeitar as regras definidas pela geraccedilatildeo procedimen-
tal seria necessaacuterio converter estas alteraccedilotildees em regras possiacuteveis de definir no escopo do ambiente
de geraccedilatildeo procedimental
De qualquer das formas as alteraccedilotildees realizadas no ponto anterior podem simplesmente natildeo
fazer sentido apoacutes a aplicaccedilatildeo sobre o objeto que foi reproduzido seguindo as regras definias
por um procedimento Devido a esta limitaccedilatildeo eacute assumido que assim que o utilizador requisita
uma nova execuccedilatildeo de um procedimento o qual natildeo tem problemas em descartar as alteraccedilotildees
executadas manualmente sobre o objeto em questatildeo
Tendo em consideraccedilatildeo esta limitaccedilatildeo eacute possiacutevel estruturar um fluxo de trabalho que melhor
explore as vantagens e limitaccedilotildees de ambas as abordagens de geraccedilatildeo de conteuacutedo tridimensional
O utilizador tem uma panoacuteplia de conteuacutedos procedimentais ao seu dispor que podem ser definidas
via paracircmetros numeacutericos e geomeacutetricos O conteuacutedo eacute adicionado ao ambiente de modelaccedilatildeo ma-
nual e os paracircmetros podem ainda ser editados alterados ao custo de que as modificaccedilotildees manuais
realizadas sobre o objeto sejam descartadas
32 Metodologias de Interaccedilatildeo com o Utilizador
Em relaccedilatildeo agrave interaccedilatildeo com o utilizador foram estudadas trecircs abordagens para a interaccedilatildeo com
meacutetodos de geraccedilatildeo procedimental em ambiente de modelaccedilatildeo manual
321 Modificadores
O conceito de modificadores eacute jaacute utilizado em ambientes de modelaccedilatildeo manual eg no Blen-
der [Bap14 Ble15e] onde satildeo utilizados para realizar operaccedilotildees sobre objetos na cena sem destruir
a geometria subjacente apenas modificam a forma como os objetos satildeo percecionados pelo motor
de renderizaccedilatildeo Esta abordagem eacute uacutetil em situaccedilotildees onde o procedimento a ser executado en-
volve modificaccedilotildees sobre uma geometria base como tal permitindo realizar muacuteltiplas alteraccedilotildees
sobre um objeto podendo estas ser facilmente canceladas recuperando o objeto original No en-
tanto nem todos os recursos de geraccedilatildeo procedimental incidem sobre modificaccedilatildeo de geometria
Os meios de geraccedilatildeo procedimental em muitas situaccedilotildees produzem objetos e cenaacuterios uacutenicos e
independentes de qualquer geometria de entrada
322 Grafos
A abordagem de interaccedilatildeo via grafos eacute atualmente utilizada num ambiente de modelaccedilatildeo ma-
nual para a ediccedilatildeo de materiais [Ble15d] Tambeacutem chamada de Flow-Based Programming esta
16
Metodologia
abordagem permite apresentar ao utilizador os procedimentos como uma caixa negra com pos-
siacuteveis entradas e saiacutedas representadas como ligaccedilotildees de fluxo A correspondente utilizaccedilatildeo na
interaccedilatildeo com geraccedilatildeo procedimental pode permitir o encadeamento de muacuteltiplos procedimentos
No entanto a abordagem pode ser mais trabalhosa para o utilizador introduzindo um niacutevel de
interaccedilatildeo adicional para cada objeto introduzido na cena
323 Funccedilotildees
Esta abordagem disponibiliza ao utilizador cada recurso de geraccedilatildeo procedimental como uma
funccedilatildeo disponiacutevel a qualquer momento na interface da ferramenta de modelaccedilatildeo manual Aquando
da respetiva invocaccedilatildeo satildeo requisitados aos utilizadores os paracircmetros necessaacuterios agrave execuccedilatildeo
A abordagem em causa eacute potencialmente a mais faacutecil de adotar por parte dos utilizadores de
ferramentas de modelaccedilatildeo manual Devido agrave simplicidade na interaccedilatildeo assim como a reduzida
necessidade de tempo e recursos para a implementaccedilatildeo esta foi a abordagem de interaccedilatildeo utilizada
na soluccedilatildeo desenvolvida
33 Arquitetura da Soluccedilatildeo
Para abordar este problema eacute proposta a utilizaccedilatildeo de duas aplicaccedilotildees jaacute presentes no mer-
cado Uma aplicaccedilatildeo dedicada agrave modelaccedilatildeo procedimental e uma aplicaccedilatildeo de modelaccedilatildeo manual
Foi escolhida esta abordagem na medida em que eacute possiacutevel utilizar duas aplicaccedilotildees jaacute existentes
sendo possiacutevel dessa forma aproveitar os pontos fortes de cada soluccedilatildeo com o intuito de otimi-
zar o processo de criaccedilatildeo de novos cenaacuterios e conteuacutedo tridimensional Esta abordagem pode ser
representada como uma soluccedilatildeo estruturada numa arquitetura Cliente-Servidor em que a aplica-
ccedilatildeo de geraccedilatildeo procedimental eacute capaz de fornecer serviccedilos de geraccedilatildeo de conteuacutedo a um ou mais
clientes de modelaccedilatildeo Esta abordagem interliga as duas aplicaccedilotildees atraveacutes de um protocolo de
comunicaccedilatildeo Este permite ao utilizador da ferramenta de modelaccedilatildeo manual requisitar a produ-
ccedilatildeo de conteuacutedo seguindo os valores impostos pelo utilizador nos paracircmetros do procedimento
requisitado O protocolo eacute descrito em maior detalhe na secccedilatildeo 34
331 Vantagens
Faacutecil integraccedilatildeo em diferentes plataformas Devido agrave arquitetura ser baseada na comunicaccedilatildeo
entre duas aplicaccedilotildees por um protocolo de comunicaccedilatildeo geneacuterico eacute com alguma facili-
dade que se realiza a interligaccedilatildeo com diferentes soluccedilotildees de geraccedilatildeo procedimental ou de
modelaccedilatildeo manual Sendo assim possiacutevel a expansatildeo para novos ambientes de modelaccedilatildeo
manual ou mesmo introduzir novas soluccedilotildees de geraccedilatildeo procedimental
Escalabilidade A arquitetura proposta poderaacute permitir que esta seja implementada de modo a que
um servidor central de geraccedilatildeo procedimental sirva por exemplo num ambiente empresa-
rial como um repositoacuterio de recursos de geraccedilatildeo de conteuacutedos desta forma permitindo
17
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Metodologia
Considerando uma situaccedilatildeo em que o modelador realizou alteraccedilotildees profundas na geometria
produzida como por exemplo a reparticcedilatildeo de uma das fachadas do edifiacutecio em trecircs fachadas
Assim que realizadas estas alteraccedilotildees o utilizador pretende alterar a altura do edifiacutecio alterando o
paracircmetro correspondente e requisitando uma atualizaccedilatildeo Para ser possiacutevel manter as alteraccedilotildees
realizadas manualmente e em simultacircneo respeitar as regras definidas pela geraccedilatildeo procedimen-
tal seria necessaacuterio converter estas alteraccedilotildees em regras possiacuteveis de definir no escopo do ambiente
de geraccedilatildeo procedimental
De qualquer das formas as alteraccedilotildees realizadas no ponto anterior podem simplesmente natildeo
fazer sentido apoacutes a aplicaccedilatildeo sobre o objeto que foi reproduzido seguindo as regras definias
por um procedimento Devido a esta limitaccedilatildeo eacute assumido que assim que o utilizador requisita
uma nova execuccedilatildeo de um procedimento o qual natildeo tem problemas em descartar as alteraccedilotildees
executadas manualmente sobre o objeto em questatildeo
Tendo em consideraccedilatildeo esta limitaccedilatildeo eacute possiacutevel estruturar um fluxo de trabalho que melhor
explore as vantagens e limitaccedilotildees de ambas as abordagens de geraccedilatildeo de conteuacutedo tridimensional
O utilizador tem uma panoacuteplia de conteuacutedos procedimentais ao seu dispor que podem ser definidas
via paracircmetros numeacutericos e geomeacutetricos O conteuacutedo eacute adicionado ao ambiente de modelaccedilatildeo ma-
nual e os paracircmetros podem ainda ser editados alterados ao custo de que as modificaccedilotildees manuais
realizadas sobre o objeto sejam descartadas
32 Metodologias de Interaccedilatildeo com o Utilizador
Em relaccedilatildeo agrave interaccedilatildeo com o utilizador foram estudadas trecircs abordagens para a interaccedilatildeo com
meacutetodos de geraccedilatildeo procedimental em ambiente de modelaccedilatildeo manual
321 Modificadores
O conceito de modificadores eacute jaacute utilizado em ambientes de modelaccedilatildeo manual eg no Blen-
der [Bap14 Ble15e] onde satildeo utilizados para realizar operaccedilotildees sobre objetos na cena sem destruir
a geometria subjacente apenas modificam a forma como os objetos satildeo percecionados pelo motor
de renderizaccedilatildeo Esta abordagem eacute uacutetil em situaccedilotildees onde o procedimento a ser executado en-
volve modificaccedilotildees sobre uma geometria base como tal permitindo realizar muacuteltiplas alteraccedilotildees
sobre um objeto podendo estas ser facilmente canceladas recuperando o objeto original No en-
tanto nem todos os recursos de geraccedilatildeo procedimental incidem sobre modificaccedilatildeo de geometria
Os meios de geraccedilatildeo procedimental em muitas situaccedilotildees produzem objetos e cenaacuterios uacutenicos e
independentes de qualquer geometria de entrada
322 Grafos
A abordagem de interaccedilatildeo via grafos eacute atualmente utilizada num ambiente de modelaccedilatildeo ma-
nual para a ediccedilatildeo de materiais [Ble15d] Tambeacutem chamada de Flow-Based Programming esta
16
Metodologia
abordagem permite apresentar ao utilizador os procedimentos como uma caixa negra com pos-
siacuteveis entradas e saiacutedas representadas como ligaccedilotildees de fluxo A correspondente utilizaccedilatildeo na
interaccedilatildeo com geraccedilatildeo procedimental pode permitir o encadeamento de muacuteltiplos procedimentos
No entanto a abordagem pode ser mais trabalhosa para o utilizador introduzindo um niacutevel de
interaccedilatildeo adicional para cada objeto introduzido na cena
323 Funccedilotildees
Esta abordagem disponibiliza ao utilizador cada recurso de geraccedilatildeo procedimental como uma
funccedilatildeo disponiacutevel a qualquer momento na interface da ferramenta de modelaccedilatildeo manual Aquando
da respetiva invocaccedilatildeo satildeo requisitados aos utilizadores os paracircmetros necessaacuterios agrave execuccedilatildeo
A abordagem em causa eacute potencialmente a mais faacutecil de adotar por parte dos utilizadores de
ferramentas de modelaccedilatildeo manual Devido agrave simplicidade na interaccedilatildeo assim como a reduzida
necessidade de tempo e recursos para a implementaccedilatildeo esta foi a abordagem de interaccedilatildeo utilizada
na soluccedilatildeo desenvolvida
33 Arquitetura da Soluccedilatildeo
Para abordar este problema eacute proposta a utilizaccedilatildeo de duas aplicaccedilotildees jaacute presentes no mer-
cado Uma aplicaccedilatildeo dedicada agrave modelaccedilatildeo procedimental e uma aplicaccedilatildeo de modelaccedilatildeo manual
Foi escolhida esta abordagem na medida em que eacute possiacutevel utilizar duas aplicaccedilotildees jaacute existentes
sendo possiacutevel dessa forma aproveitar os pontos fortes de cada soluccedilatildeo com o intuito de otimi-
zar o processo de criaccedilatildeo de novos cenaacuterios e conteuacutedo tridimensional Esta abordagem pode ser
representada como uma soluccedilatildeo estruturada numa arquitetura Cliente-Servidor em que a aplica-
ccedilatildeo de geraccedilatildeo procedimental eacute capaz de fornecer serviccedilos de geraccedilatildeo de conteuacutedo a um ou mais
clientes de modelaccedilatildeo Esta abordagem interliga as duas aplicaccedilotildees atraveacutes de um protocolo de
comunicaccedilatildeo Este permite ao utilizador da ferramenta de modelaccedilatildeo manual requisitar a produ-
ccedilatildeo de conteuacutedo seguindo os valores impostos pelo utilizador nos paracircmetros do procedimento
requisitado O protocolo eacute descrito em maior detalhe na secccedilatildeo 34
331 Vantagens
Faacutecil integraccedilatildeo em diferentes plataformas Devido agrave arquitetura ser baseada na comunicaccedilatildeo
entre duas aplicaccedilotildees por um protocolo de comunicaccedilatildeo geneacuterico eacute com alguma facili-
dade que se realiza a interligaccedilatildeo com diferentes soluccedilotildees de geraccedilatildeo procedimental ou de
modelaccedilatildeo manual Sendo assim possiacutevel a expansatildeo para novos ambientes de modelaccedilatildeo
manual ou mesmo introduzir novas soluccedilotildees de geraccedilatildeo procedimental
Escalabilidade A arquitetura proposta poderaacute permitir que esta seja implementada de modo a que
um servidor central de geraccedilatildeo procedimental sirva por exemplo num ambiente empresa-
rial como um repositoacuterio de recursos de geraccedilatildeo de conteuacutedos desta forma permitindo
17
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Metodologia
abordagem permite apresentar ao utilizador os procedimentos como uma caixa negra com pos-
siacuteveis entradas e saiacutedas representadas como ligaccedilotildees de fluxo A correspondente utilizaccedilatildeo na
interaccedilatildeo com geraccedilatildeo procedimental pode permitir o encadeamento de muacuteltiplos procedimentos
No entanto a abordagem pode ser mais trabalhosa para o utilizador introduzindo um niacutevel de
interaccedilatildeo adicional para cada objeto introduzido na cena
323 Funccedilotildees
Esta abordagem disponibiliza ao utilizador cada recurso de geraccedilatildeo procedimental como uma
funccedilatildeo disponiacutevel a qualquer momento na interface da ferramenta de modelaccedilatildeo manual Aquando
da respetiva invocaccedilatildeo satildeo requisitados aos utilizadores os paracircmetros necessaacuterios agrave execuccedilatildeo
A abordagem em causa eacute potencialmente a mais faacutecil de adotar por parte dos utilizadores de
ferramentas de modelaccedilatildeo manual Devido agrave simplicidade na interaccedilatildeo assim como a reduzida
necessidade de tempo e recursos para a implementaccedilatildeo esta foi a abordagem de interaccedilatildeo utilizada
na soluccedilatildeo desenvolvida
33 Arquitetura da Soluccedilatildeo
Para abordar este problema eacute proposta a utilizaccedilatildeo de duas aplicaccedilotildees jaacute presentes no mer-
cado Uma aplicaccedilatildeo dedicada agrave modelaccedilatildeo procedimental e uma aplicaccedilatildeo de modelaccedilatildeo manual
Foi escolhida esta abordagem na medida em que eacute possiacutevel utilizar duas aplicaccedilotildees jaacute existentes
sendo possiacutevel dessa forma aproveitar os pontos fortes de cada soluccedilatildeo com o intuito de otimi-
zar o processo de criaccedilatildeo de novos cenaacuterios e conteuacutedo tridimensional Esta abordagem pode ser
representada como uma soluccedilatildeo estruturada numa arquitetura Cliente-Servidor em que a aplica-
ccedilatildeo de geraccedilatildeo procedimental eacute capaz de fornecer serviccedilos de geraccedilatildeo de conteuacutedo a um ou mais
clientes de modelaccedilatildeo Esta abordagem interliga as duas aplicaccedilotildees atraveacutes de um protocolo de
comunicaccedilatildeo Este permite ao utilizador da ferramenta de modelaccedilatildeo manual requisitar a produ-
ccedilatildeo de conteuacutedo seguindo os valores impostos pelo utilizador nos paracircmetros do procedimento
requisitado O protocolo eacute descrito em maior detalhe na secccedilatildeo 34
331 Vantagens
Faacutecil integraccedilatildeo em diferentes plataformas Devido agrave arquitetura ser baseada na comunicaccedilatildeo
entre duas aplicaccedilotildees por um protocolo de comunicaccedilatildeo geneacuterico eacute com alguma facili-
dade que se realiza a interligaccedilatildeo com diferentes soluccedilotildees de geraccedilatildeo procedimental ou de
modelaccedilatildeo manual Sendo assim possiacutevel a expansatildeo para novos ambientes de modelaccedilatildeo
manual ou mesmo introduzir novas soluccedilotildees de geraccedilatildeo procedimental
Escalabilidade A arquitetura proposta poderaacute permitir que esta seja implementada de modo a que
um servidor central de geraccedilatildeo procedimental sirva por exemplo num ambiente empresa-
rial como um repositoacuterio de recursos de geraccedilatildeo de conteuacutedos desta forma permitindo
17
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Metodologia
Figura 31 Diagrama do sistema proposto
adicionar novo conteuacutedo assim que necessaacuterio por cada modelador ao ambiente de modela-
ccedilatildeo em que estatildeo a produzir conteuacutedo tridimensional
332 Desvantagens
Falta de transparecircncia A abordagem utilizada isola o funcionamento interno dos meacutetodos de
geraccedilatildeo procedimental do utilizador Este apenas sabe o que eacute possiacutevel adicionar agrave cena e
os paracircmetros e geometrias de entrada Para um utilizador proficiente em geraccedilatildeo proce-
dimental torna-se mais apelativo uma integraccedilatildeo mais transparente e que lhe garanta um
maior controlo da geometria resultante Por exemplo ediccedilatildeo dos procedimentos atraveacutes da
interface de modelaccedilatildeo manual
Latecircncia da comunicaccedilatildeo Esta abordagem pode em certas situaccedilotildees introduzir latecircncias na in-
teraccedilatildeo com o utilizador pois esta estaacute dependente de comunicaccedilotildees entre duas aplicaccedilotildees
completamente independentes
Conhecimentos das duas aplicaccedilotildees Em situaccedilotildees em que eacute desejado por um utilizador a alte-
raccedilatildeo do funcionamento de um procedimento esta tem de ser realizada fora da aplicaccedilatildeo de
modelaccedilatildeo manual Pois a soluccedilatildeo proposta abstrai-se de um editor de recursos procedi-
mental e trata cada procedimento como uma caixa negra em que dadas umas certas entradas
um resultado eacute obtido e adicionado ao cenaacuterio na aplicaccedilatildeo de modelaccedilatildeo manual
18
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Metodologia
34 Protocolo de Comunicaccedilatildeo
No que respeita agrave comunicaccedilatildeo entre as duas aplicaccedilotildees eacute preferiacutevel um protocolo de comu-
nicaccedilatildeo legiacutevel e extensiacutevel de modo a facilitar a implementaccedilatildeo de novas funcionalidades entre
as aplicaccedilotildees Os tipos de mensagens existentes satildeo
Requisiccedilatildeo de recursos disponiacuteveis Esta mensagem eacute a primeira a ser realizada assim que a apli-
caccedilatildeo cliente inicializa requisitando ao servidor quais os recursos de modelaccedilatildeo procedi-
mental disponiacuteveis Eacute enviada da aplicaccedilatildeo cliente para o servidor permitindo que este
carregue todos os recursos necessaacuterios para a geraccedilatildeo de conteuacutedo e que informe a aplica-
ccedilatildeo cliente dos procedimentos disponiacuteveis
Informaccedilatildeo dos Recursos disponiacuteveis Esta eacute a mensagem de resposta a um pedido de informa-
ccedilatildeo inicial A mensagem encapsula toda a informaccedilatildeo relativa aos recursos de geraccedilatildeo
procedimental existentes para que a aplicaccedilatildeo cliente seja capaz de gerar uma interface
correspondente e que informe o utilizador de quais os tipos de conteuacutedo disponiacuteveis para
requisiccedilatildeo Eacute tambeacutem incluiacuteda toda a informaccedilatildeo relativa aos paracircmetros que cada procedi-
mento pode receber
Gerar conteuacutedo Esta mensagem eacute enviada pelo cliente e informa o servidor do procedimento
disponibilizado pelo servidor a correr e de quais os valores para os paracircmetros e entradas Eacute
transmitida informaccedilatildeo de qual o procedimento a executar quais os seus paracircmetros de exe-
cuccedilatildeo e caso aplicaacutevel a geometria a ser utilizada como base para a execuccedilatildeo das operaccedilotildees
procedimentais
Conteuacutedo Gerado Esta mensagem eacute utilizada pelo servidor como confirmaccedilatildeo que o conteuacutedo
requisitado foi produzido e se encontra disponiacutevel para ser utilizado pela aplicaccedilatildeo cliente
Mensagem de erro Caso ocorra algum erro no servidor este pode comunicar agrave aplicaccedilatildeo cliente
via uma mensagem de erro que eacute apresentada ao utilizador pela interface da aplicaccedilatildeo
cliente
Este protocolo assume que os recursos de geraccedilatildeo procedimental estatildeo organizados em proje-
tos que englobam um conjunto de recursos procedimentais podendo ser requisitados individual-
mente e que requerem ateacute dois principais tipos de informaccedilatildeo para a correspondente execuccedilatildeo
Paracircmetros Atribuem valores a variaacuteveis internas ao procedimento permitindo assim ao utiliza-
dor alterar o conteuacutedo produzido Cada procedimento pode requisitar um nuacutemero arbitraacuterio
de paracircmetros de entrada os quais podem tomar valores alfanumeacutericos ou booleanos (Ver-
dadeiro ou Falso)
Geometria de entrada Definem uma geometria base sobre a qual certas operaccedilotildees do procedi-
mento seratildeo realizadas de modo a produzir uma geometria resultante Por exemplo no caso
da geraccedilatildeo de um edifiacutecio o seu periacutemetro da base pode ser definido por uma geometria
19
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Metodologia
Esta base serviraacute de fundaccedilatildeo para as operaccedilotildees de geraccedilatildeo de um edifiacutecio enquadrado na
mesma
20
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Capiacutetulo 4
Implementaccedilatildeo
Neste capiacutetulo seratildeo descritos em detalhe os passos realizados para a implementaccedilatildeo da solu-
ccedilatildeo proposta segundo a metodologia apresentada no capiacutetulo anterior
Para implementar a metodologia previamente definida foram selecionadas tecnologias jaacute exis-
tentes que satisfizessem as necessidades de uma ferramenta de modelaccedilatildeo manual possiacutevel de ser
servida de funcionalidades de geraccedilatildeo procedimental de uma aplicaccedilatildeo externa Eacute necessaacuterio que
as duas ferramentas sejam capazes de interagir entre si mediante um protocolo de comunicaccedilatildeo
que permita a troca de mensagens padronizadas entre as duas ferramentas
Como Aplicaccedilatildeo cliente foi utilizado o Blender como servidor de recursos de geraccedilatildeo pro-
cedimental o Construct e para permitir a comunicaccedilatildeo entre estas duas ferramentas foi definido
um protocolo em JSON que eacute utilizado para a comunicaccedilatildeo muacutetua via Sockets
41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
Na atualidade existem diversas ferramentas de modelaccedilatildeo manual disponiacuteveis no mercado
estas foram listadas no estado da arte no entanto eacute de destacar o Blender uma ferramenta gratuita
e open-source de computaccedilatildeo graacutefica Esta eacute capaz de produzir imagens geradas por computador
(CGI) de geometria modelada na ferramenta Este software foi escolhido como a aplicaccedilatildeo cliente
devido agraves seguintes vantagens face agrave respetiva concorrecircncia
Gratuito e Open Source Ao contraacuterio das principais ferramentas concorrentes o Blender eacute uma
aplicaccedilatildeo gratuita e de coacutedigo livre
Comunidade vasta e ativa Comparativamente agrave concorrecircncia o Blender possui uma comuni-
dade de utilizadores extremamente ativa em foacuteruns e paacuteginas de suporte Depois de compi-
lada a tabela seguinte 41 em que eacute possiacutevel verificar as estatiacutesticas dos principais foacuteruns de
utilizadores de Blender 3Dsmax e Maya comprova-se que a comunidade Blender eacute a maior
e mais ativa entre as aplicaccedilotildees concorrentes
21
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Implementaccedilatildeo
Tabela 41 Estatiacutesticas dos principais foacuteruns
Forum Utilizadores Toacutepicos MensagensBlenderartistsorg 228649 356260 2936935blenderorgforum 117957 22856 98144forumsautodeskcomt5maya desconhecido desconhecido 78656simplymayacomforum 238228 37980 335735forumsautodeskcomt53ds-max desconhecido desconhecido 195129
API Python O Blender disponibiliza uma API Python que permite criar novos elementos na inter-
face e novas ferramentas atraveacutes de scripts em Python Estes scripts podem ser configurados
para serem inicializados assim que o Blender arranca funcionando assim como add-ons ao
sistema base
42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
Como ferramenta de modelaccedilatildeo procedimental foi utilizado como base o Construct desenvol-
vida na FEUP por Pedro Silva no acircmbito da respetiva dissertaccedilatildeo de Doutoramento O Construct
eacute um sistema de geraccedilatildeo procedimental geneacuterico que tem a capacidade de produzir uma panoacuteplia
de conteuacutedo de forma automatizada seguindo regras (figura 41) As regras satildeo definidas numa
linguagem visual de alto niacutevel em grafos de fluxo que definem regras e operaccedilotildees a aplicar de
modo a produzir a geometria resultante
Figura 41 Editor Construct em execuccedilatildeo
22
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Implementaccedilatildeo
O utilizador atraveacutes da manipulaccedilatildeo de noacutes baacutesicos que criam e manipulam conteuacutedo constroacutei
novos grafos para atingir o resultado desejado No seguinte grafo de exemplo (figura 42) eacute
definido um retacircngulo de 3 unidades por 2 unidades de dimensatildeo e eacute aplicada a operaccedilatildeo de extrude
de 2 unidades em que depois de uma execuccedilatildeo eacute possiacutevel visualizar que o objeto resultante eacute um
paralelepiacutepedo com as dimensotildees de 3 por 2 por 2
Figura 42 Grafo exemplo e respetiva geometria produzida
Para a soluccedilatildeo desenvolvida foi utilizada a biblioteca NET C do Construct Foi implemen-
tado um servidor que responde a pedidos de execuccedilatildeo de grafos transmitidos via Sockets TCP O
resultado da execuccedilatildeo de um grafo eacute codificado como um ficheiro Wavefront OBJ e eacute colocado
numa pasta temporaacuteria partilhada entre as duas aplicaccedilotildees
43 Comunicaccedilatildeo
A comunicaccedilatildeo entre as duas aplicaccedilotildees necessita de ser capaz de transmitir informaccedilatildeo entre
ambas atraveacutes de um protocolo comum e interpretaacutevel pelas duas aplicaccedilotildees distintas Para tal
foram estudadas as alternativas existentes Named Pipes Network Sockets XMLRPC e SOAP
foram as tecnologias encontradas que permitem a comunicaccedilatildeo entre um Add-on Blender em
Python e uma aplicaccedilatildeo NET com acesso aos recursos do Construct No entanto devido ao foco
desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre as duas aplicaccedilotildees mas a integraccedilatildeo de paradigmas
de modelaccedilatildeo procedimental num ambiente de modelaccedilatildeo manual foi escolhida uma comunicaccedilatildeo
entre as duas aplicaccedilotildees via Network Sockets Trata-se de uma tecnologia que estaacute disponiacutevel em
essencialmente qualquer sistema que seria a mais raacutepida de implementar e simultaneamente que
suporta todas as necessidades do sistema As mensagens satildeo estruturadas num objeto JSON que
possui sempre como base os campos Subject e Data Sendo que o campo Subject identifica o
tipo de mensagem que estaacute a ser enviada e o campo Data contem a informaccedilatildeo necessaacuteria para
realizar dita mensagem
O servidor apoacutes a inicializaccedilatildeo espera que seja requisitada a abertura de um novo projeto
Construct o que eacute realizado atraveacutes do pedido OpenProj onde o add-on informa sobre o caminho
absoluto para a localizaccedilatildeo do ficheiro do tipo cprj Depois de verificar que o ficheiro em
questatildeo especifica um projeto de Construct o servidor carrega o projeto e de seguida eacute percorrida
23
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Implementaccedilatildeo
Figura 43 Exemplo de uma mensagem JSON utilizada para a abertura de um Projeto Construct
toda a informaccedilatildeo relativa aos grafos com essa informaccedilatildeo eacute construido um objeto JSON O
objeto JSON acarreta toda a informaccedilatildeo necessaacuteria para construir a interface necessaacuteria incluindo
nomes dos grafos e os respetivos paracircmetros com tipos e entradas de geometria Na figura 44 eacute
possiacutevel vermos um exemplo de informaccedilatildeo relativa a um projeto Construct que conteacutem apenas
um grafo O grafo em questatildeo gera um edifiacutecio e aceita dois paracircmetros Height a altura do
edifico e Roof Height a altura do telhado Este grafo tambeacutem requer um objeto a ser utilizado
como base para a geraccedilatildeo do conteuacutedo no grafo em questatildeo o objeto delimita as fundaccedilotildees do
edifiacutecio a gerar
Figura 44 Exemplo de uma mensagem JSON com informaccedilatildeo relativa ao projeto Construct aabrir
24
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Implementaccedilatildeo
Entre as duas aplicaccedilotildees existem diferenccedilas quanto agrave especificaccedilatildeo dos respetivos tipos Posto
isto eacute necessaacuterio associar as suas equivalecircncias entre os dois sistemas Na tabela seguinte eacute
possiacutevel verificar os mapeamentos realizados entre os tipos utilizados internamente nos paracircmetros
de um grafo Construct e o respetivo equivalente no ambiente Blender No ambiente Blender
os tipos de paracircmetros satildeo definidos via funccedilotildees do moacutedulo bpyprops Estas funccedilotildees definem
o que o Blender intitula de Properties que natildeo podem ser utilizadas diretamente apenas para
definir atributos de classes que estendam funcionalidades do Blender Para aleacutem de definirem um
atributo podem tambeacutem definir restriccedilotildees sobre essas propriedades tais como os valores miacutenimo
e maacuteximo
44 Construccedilatildeo da Interface
A API Python do Blender estaacute estruturada de forma a que qualquer ferramenta ou operaccedilatildeo
interna seja definida como uma subclasse do tipo bpytypesOperator um operador eacute definido
pelas suas propriedades do tipo bpyprops e os seguintes meacutetodos que satildeo herdados de Operator
e podem ser re-definidos por cada nova sub-classe
poll Este meacutetodo eacute executado antes de invoke e execute para verificar se o operador pode ser
executado Caso a validaccedilatildeo falhe o meacutetodo execute do operador natildeo eacute executado e a
interface definida por draw eacute bloqueada
execute Corre sempre que o Operator eacute requisitado via a interface do Blender consola Python do
Blender ou em coacutedigo
draw Utilizado para definir a interface do operador tipicamente na tool-bar do Blender onde os
valores das suas propriedades podem ser editados
Tabela 42 Mapeamentos de tipos entre paracircmetros Construct e propriedades Blender
Construct Type Blender TypeSystemInt32 bpypropsIntProperty()
SystemBoolean bpypropsBoolProperty()SystemSingle bpypropsFloatProperty()SystemDouble bpypropsFloatProperty()SystemString bpypropsStringProperty()
ConstructGeometry3DbasicVector3D bpypropsFloatVectorProperty()
Depois de recebido o objeto JSON com a informaccedilatildeo do projeto Construct a abrir este eacute inter-
pretado e eacute definida uma nova classe que estende a classe base bpytypesOperator por cada grafo
do projeto A cada operador de um grafo definido satildeo atribuiacutedos como atributos os paracircmetros
do grafo seguindo o mapeamento definido pela tabela 42 assim como as entradas de geometria
necessaacuterias para a execuccedilatildeo do grafo Eacute definida uma nova secccedilatildeo na barra de ferramentas do
Blender intitulada de Construct onde seratildeo colocados bototildees para acionar a requisiccedilatildeo destes
operadores que efetuam o pedido da execuccedilatildeo dos grafos ao servidor 45
25
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Implementaccedilatildeo
Figura 45 Barra de ferramentas depois de aberto um projeto
45 Execuccedilatildeo
Na execuccedilatildeo de um operador os valores dos paracircmetros e geometria necessaacuteria para execuccedilatildeo
satildeo compilados num objeto JSON 46 e enviados ao servidor por meio da ligaccedilatildeo por Sockets
a geometria resultante eacute definida como um ficheiro Wavefront obj que eacute colocado numa pasta
temporaacuteria partilhada entre as duas aplicaccedilotildees
Figura 46 JSON enviado ao servidor para a execuccedilatildeo de um grafo
26
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Implementaccedilatildeo
Na figura 47 eacute possiacutevel ver um plano previamente adicionado agrave cena ser utilizado como Input
para a execuccedilatildeo do grafo Building em conjunto com os valores definidos nos paracircmetros height
roof roof height Door at face Door at position e Has windows on lower com base nestes valores
eacute produzido o edifiacutecio que pode ser encontrado em 48
Figura 47 Edifiacutecio a ser construido e adicionado agrave cena utilizando Plane como base
Figura 48 Edifiacutecio depois de adicionado agrave cena
A alteraccedilatildeo destes valores na interface do operador eacute refletida em tempo real na cena como
eacute possiacutevel ver em 49 onde os valores de Roof Roof height Door at Position e Has windows on
lower foram alterados produzindo assim um edifiacutecio sem um telhado detalhado com um beiral de
apenas 03 unidades e a porta colocada numa posiccedilatildeo diferente e construiacutedo sobre o objeto plane
Na figura 410 eacute possiacutevel contemplar que os objetos de entrada podem ser manipulados manu-
almente antes de estes serem utilizados como base para a construccedilatildeo de um edifiacutecio dando assim
27
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Implementaccedilatildeo
Figura 49 Edifiacutecio apoacutes a alteraccedilatildeo de alguns valores
ao modelador uma maior liberdade criativa sobre o conteuacutedo a ser produzido procedimentalmente
Com o edifiacutecio inserido na cena e a realizaccedilatildeo de outra operaccedilatildeo do Blender eg uma trans-
laccedilatildeo a interface de ediccedilatildeo dos valores como vista em 47 eacute substituiacuteda pela interface da operaccedilatildeo
utilizada mais recentemente assim restringindo ao utilizador da alteraccedilatildeo dos valores Trata-se de
uma limitaccedilatildeo presente em todas as ferramentas do Blender fazendo parte do meacutetodo de trabalho
que este impotildee aos seus utilizadores O programa espera que os utilizadores realizem operaccedilotildees
de reversatildeo das alteraccedilotildees (Ctrl+Z) e voltem a realizar a operaccedilatildeo que pretendiam sem o acesso
a um histoacuterico das alteraccedilotildees realizadas
Figura 410 Edifiacutecio a ser construido sobre um poliacutegono natildeo regular
28
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Implementaccedilatildeo
Numa tentativa de circundar esta limitaccedilatildeo os valores dos paracircmetros foram introduzidos a
cada objeto como Custom Properties (Figura 411) Esta abordagem mostrou-se altamente limi-
tada na medida em que as Custom Properties de um dado objeto na cena natildeo podem ser do tipo
bpyprops e eacute permitido ao utilizador introduzir valores incompatiacuteveis com o paracircmetro subjacente
Figura 411 Custom Properties de um objeto produzido por um grafo Cube
29
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Implementaccedilatildeo
30
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Capiacutetulo 5
Teste da Soluccedilatildeo e Resultados Obtidos
Neste capiacutetulo seraacute descrita a abordagem utilizada para a realizaccedilatildeo dos testes com utiliza-
dores da soluccedilatildeo detalhada no capiacutetulo anterior Seraacute abordada a metodologia de teste utilizada
assim como as meacutetricas para a consequente anaacutelise dos resultados
51 Metodologia de Teste
Figura 51 Cenaacuterio requisitado aos utilizadores
Para realizar o estudo da usabilidade de operaccedilotildees de geraccedilatildeo procedimental integradas num
ambiente de modelaccedilatildeo manual eacute necessaacuterio avaliar a eficiecircncia com que os modeladores realizam
uma tarefa de construccedilatildeo de um cenaacuterio Num ambiente de teste ideal seria pedido a utilizadores
31
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Teste da Soluccedilatildeo e Resultados Obtidos
experientes em Blender para construirem um cenaacuterio similar ao da figura 51 utilizando apenas
os recursos nativos agrave aplicaccedilatildeo Blender De seguida seria pedido para produzirem o mesmo
resultado utilizando a soluccedilatildeo desenvolvida desta forma tornar-se-ia possiacutevel comparar dados
concretos ente uma abordagem puramente manual e uma abordagem hiacutebrida Para a realizaccedilatildeo
de um teste deste tipo seria necessaacuterio alocar muacuteltiplas horas para cada utilizador Devido ao
tempo disponiacutevel para a realizaccedilatildeo destes testes ser limitado optou-se realizar apenas o teste
da abordagem desenvolvida reduzindo o tempo de teste para aproximadamente 30 minutos por
utilizador Para a realizaccedilatildeo destes testes foi definido um ambiente urbano figura 51 constituiacutedo
por quatro quarteirotildees de uma cidade em que cada lote conteacutem um edifiacutecio com caracteriacutesticas
distintas O teste consiste na recriaccedilatildeo por parte dos sujeitos do quarteiratildeo no software Blender
utilizando os recursos disponibilizados por um projeto Construct fornecido O projeto Construct
eacute intitulado de Urban e disponibiliza os grafos necessaacuterios para a geraccedilatildeo do cenaacuterio requisitado
entre os quais se destacam os seguintes
Building eacute capaz de produzir um edifiacutecio sobre uma geometria base as fachadas deste edifiacutecio
satildeo divididas numa grelha composta por janelas Window as janelas ao niacutevel do solo satildeo
opcionais a posiccedilatildeo da porta do edifiacutecio configuraacutevel e um telhado do tipo DetailedRoof
opcional Grafo em anexo B1
Figura 52 Exemplos de resultados possiacuteveis do grafo Building
32
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Teste da Soluccedilatildeo e Resultados Obtidos
Window Este grafo resulta numa janela com um rebordo Os limites deste grafo satildeo definidos por
uma geometria base por exemplo uma ceacutelula da fachada do edifiacutecio produzido por Building
grafo em anexo B3
Figura 53 Exemplo de resultado do grafo Window
Door Este grafo resulta numa porta com um rebordo A porta eacute construiacuteda sobre uma superfiacutecie
definida por uma geometria que lhe eacute passada como entrada No grafo Building este eacute
aplicado a uma das ceacutelulas do primeiro niacutevel de uma fachada grafo em anexo B5
Figura 54 Exemplo de resultado do grafo Door
33
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Teste da Soluccedilatildeo e Resultados Obtidos
CityStreets Atraveacutes de ferramentas nativas ao Construct definidas no grafo RectangularGrid eacute
possiacutevel a a geraccedilatildeo de um sistema de ruas e quarteirotildees de uma cidade Como paracircmetros
de CityStreets a aacuterea da cidade e o tamanho de cada lote podem ser delineados grafo em
anexo B2
Figura 55 Exemplo de resultado do grafo CityStreets
Depois de estabelecidos estes recursos de geraccedilatildeo procedimental para serem utilizados no
decorrer dos testes a execuccedilatildeo de cada teste com cada utilizador estava dividido nos seguintes
passos
1 Apresentaccedilatildeo do projeto contexto motivaccedilatildeo e soluccedilatildeo desenvolvida
2 Resposta a um questionaacuterio inicial para avaliar o niacutevel de experiecircncia com a ferramenta
Blender apresentar o cenaacuterio da figura 51 e questionar quanto tempo seria necessaacuterio para
produzir um cenaacuterio equivalente por meios puramente manuais
3 Demonstraccedilatildeo do funcionamento da soluccedilatildeo dando alguns exemplos de utilizaccedilatildeo
4 Execuccedilatildeo do teste por parte do utilizador o tempo era cronometrado
5 Resposta a um segundo questionaacuterio com perguntas standardizadas para a realizaccedilatildeo de um
teste de usabilidade
6 Discussatildeo com o utilizador
Os testes com utilizadores foram avaliados nos seguintes trecircs paracircmetros Tempo estimado
pelos utilizadores para produzirem um cenaacuterio similar ao da figura 51 utilizando apenas funci-
onalidades nativas ao Blender tempo utilizado a construir um cenaacuterio similar ao da figura 51
utilizando o add-on desenvolvido recorrendo aos grafos Construct previamente especificados
Finalmente foi requisitada a resposta a um questionaacuterio no final do teste em que algumas das
questotildees eram relativas agrave usabilidade do sistema
34
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Teste da Soluccedilatildeo e Resultados Obtidos
Para este questionaacuterio final foi realizado um teste padratildeo criado por Brooke J [Bro96] intitu-
lado de System Usability Scale O teste permite a avaliaccedilatildeo da usabilidade de um sistema atraveacutes
das respostas obtidas agraves suas dez perguntas padronizadas A partir destes resultados eacute possiacutevel
obter uma pontuaccedilatildeo de zero a cem de modo a comparar a usabilidade do sistema com a de outras
aplicaccedilotildees O teste consiste nas seguintes dez questotildees padratildeo (no contexto deste teste a palavra
sistemafoi substituiacuteda por add-on)
1 Gostaria de usar esta add-on com frequecircncia
2 O add-on eacute desnecessariamente complexo
3 O add-on eacute faacutecil de utilizar
4 Preciso de ajuda para operar o add-on
5 As diversas funccedilotildees deste sistema foram bem integradas
6 Existem muitas inconsistecircncias no add-on
7 Muitas pessoas iriam utilizar este add-on rapidamente
8 O add-on eacute muito complicado de utilizar
9 Eu senti-me muito confiante com o add-on
10 Eacute preciso aprender muitas coisas antes de utilizar o add-on
Estas satildeo respondidas numa escala de Likert [Lik32] que especifica o niacutevel de concordacircncia
com a afirmaccedilatildeo colocada dividido numa escala de valores de 1 a 5 nesta o valor de 1 corresponde
a Discordo Totalmente e 5 corresponde a Concordo Totalmente
A pontuaccedilatildeo eacute obtida realizando um somatoacuterio dos valores atribuiacutedos a cada questatildeo seguindo
duas regras
1 Aos valores das perguntas iacutempares eacute subtraiacutedo uma unidade
2 5 eacute subtraiacutedo a cada valor de uma pergunta par
O resultado deste somatoacuterio eacute multiplicado por 25 obtendo assim a pontuaccedilatildeo de usabilidade do
sistema O valor de 68 pontos eacute considerado a meacutedia como tal um sistema com uma pontuaccedilatildeo
superior a 68 eacute considerado positivo [Bro13]
35
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Teste da Soluccedilatildeo e Resultados Obtidos
52 Resultados
Os testes foram realizados com utilizadores com alguma experiecircncia de utilizaccedilatildeo da ferra-
menta Blender Foram convidados alunos da Faculdade de Belas Artes da Universidade do Porto
com alguns conhecimentos de modelaccedilatildeo e tambeacutem com alguma experiecircncia de modelaccedilatildeo ma-
nual Das sete pessoas inicialmente inscritas no evento apenas quatro acabaram por ter disponi-
bilidade para realizar o teste sendo trecircs destes alunos da FBAUP e o outro externo ao ambiente
universitaacuterio
No geral o feedback obtido da soluccedilatildeo foi positivo Nenhum dos utilizadores tinha utilizado
previamente uma ferramenta para a geraccedilatildeo automaacutetica de conteuacutedo e dois dos utilizadores natildeo
sabiam da existecircncia de meacutetodos de geraccedilatildeo procedimental de conteuacutedos tridimensionais para a
construccedilatildeo de cenaacuterios apesar de conhecerem exemplos de viacutedeo jogos com ambientes gerados
procedimentalmente Durante os testes os utilizadores natildeo revelaram dificuldades significativas
em aprender o funcionamento da ferramenta Para eles a ferramenta estava bem integrada na
interface do Blender e no workflow a que jaacute estatildeo acostumados
Figura 56 Cursor 3D do Blender
Um dos pontos que causou alguma frustraccedilatildeo para os utilizadores na utilizaccedilatildeo da soluccedilatildeo
estava relacionado com a interaccedilatildeo do add-on com o Cursor 3D do Blender 56 Numa intera-
ccedilatildeo normal com o Blender os utilizadores mudam a posiccedilatildeo do cursor constantemente e numa
situaccedilatildeo em que estes requisitassem a geraccedilatildeo de um novo conteuacutedo o resultado iria sempre ser
posicionado sobre o cursor 3D desta forma em situaccedilotildees em que o posicionamento era esperado
sobre uma geometria base a interaccedilatildeo tornava-se menos intuitiva No entanto este eacute um para-
digma comum a vaacuterias ferramentas nativas do Blender sendo o seu resultado sempre colocado na
posiccedilatildeo do cursor 3D
No caso do utilizador 3 o mais lento a realizar o teste o na tabela 51 eacute possiacutevel observar a
relativa inexperiecircncia deste com a ferramenta Blender simultaneamente reconhecida pelo proacuteprio
e tambeacutem suportada pela respetiva estimativa ingeacutenua para o tempo de modelaccedilatildeo manual em
comparaccedilatildeo com o utilizador mais experiente o utilizador 1 que completou o teste em apenas
36
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Teste da Soluccedilatildeo e Resultados Obtidos
Tabela 51 Comparaccedilatildeo entre o tempo estimado a modelar o cenaacuterio 51 manualmente e o tempoutilizado para construir o cenaacuterio utilizando o add-on desenvolvido
Utilizador Niacutevel de exp com Blender Freq de utilizaccedilatildeo do Blender Estimativa para a MM Utilizando o Add-on1 Avanccedilado Diariamente 1 ltgt3h 16min2 Intermeacutedio Algumas vezes por mecircs +3h 19min3 Intermeacutedio Algumas vezes por mecircs +3h 26min4 Novato Diariamente lt1h 20min
16 minutos e demonstrou uma raacutepida adaptaccedilatildeo agrave soluccedilatildeo desenvolvida Tendo em conta que a
soluccedilatildeo desenvolvida requer conhecimentos preacutevios com a ferramenta Blender seria de esperar
algumas dificuldades na realizaccedilatildeo do teste por parte dos utilizadores menos experientes No
entanto o tempo utilizado para produzir o resultado esperado por parte de utilizadores menos
experientes continua a ser um bom resultado comparativamente agrave abordagem manual com a qual
estavam familiarizados Como eacute possiacutevel constatar na tabela 51 o tempo necessaacuterio para construir
o cenaacuterio utilizando o add-on superou as expetativas dos utilizadores Estes ficaram surpreendidos
com a facilidade com que era possiacutevel adicionar conteuacutedo gerado procedimentalmente realizar
alteraccedilotildees aos paracircmetros e utilizaacute-los num ambiente de modelaccedilatildeo manual para rapidamente
construiacuterem uma base de trabalho que pode facilmente ser alterada manualmente e resultar no
cenaacuterio desejado
Tabela 52 Resultados da avaliaccedilatildeo de usabilidade do sistema
Utilizador Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Pontuaccedilatildeo1 4 2 3 3 4 3 5 3 4 4 6252 4 2 4 4 4 1 4 1 4 2 7503 3 1 4 4 4 2 5 1 3 2 7254 4 2 4 3 4 1 4 2 3 3 700
Meacutedia 700
A avaliaccedilatildeo da usabilidade 52 resultou numa pontuaccedilatildeo total de 70 pontos sendo assim con-
siderada um resultado acima da meacutedia segundo os standards referidos previamente
No final de cada teste foi realizada uma pequena discussatildeo com os utilizadores nesta foi
demonstrada satisfaccedilatildeo com a agilidade com que produziram e editavam o conteuacutedo na cena
Tambeacutem foi constatado um elevado interesse na utilizaccedilatildeo uma soluccedilatildeo similar para agilizarem o
processo de modelaccedilatildeo nos seus trabalhos e projetos Foram guardadas duas das cenas resultadas
do teste com os utilizadores 3 e 4 Estas satildeo respetivamente o anexo C1 e o anexo C2 Nestes
eacute possiacutevel observar a proximidade dos resultados com a cena requisitada No entanto existem
algumas pequenas discrepacircncias no que toca a texturas e orientaccedilotildees de alguns dos edifiacutecios
Os resultados obtidos pelo teste de usabilidade coincidem com o feedback positivo obtido dos
utilizadores envolvidos nos testes
37
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Teste da Soluccedilatildeo e Resultados Obtidos
38
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Capiacutetulo 6
Conclusotildees e Trabalho Futuro
Foi desenvolvida com sucesso uma soluccedilatildeo com o intuito de aproximar duas abordagens dis-
tintas agrave modelaccedilatildeo Foi definido uma metodologia com o objetivo de interligar duas aplicaccedilotildees
uma de geraccedilatildeo procedimental a segunda de modelaccedilatildeo manual Atraveacutes da implementaccedilatildeo desta
metodologia foi possiacutevel introduzir recursos da ferramenta Construct no ambiente de modelaccedilatildeo
Blender foi possiacutevel criar um ambiente de modelaccedilatildeo hiacutebrido onde os utilizadores podem facil-
mente adicionar editar e manipular manualmente conteuacutedo gerado procedimentalmente
A soluccedilatildeo foi testada com utilizadores experientes em modelaccedilatildeo com a ferramenta Blender
e sem conhecimentos preacutevios de geraccedilatildeo procedimental O feedback dos utilizadores e a conse-
quente avaliaccedilatildeo de usabilidade foram positivos tendo estes demonstrado interesse na existecircncia
de uma combinaccedilatildeo de uma ferramenta de geraccedilatildeo procedimental como o Construct com a ferra-
menta Blender A introduccedilatildeo de recursos de geraccedilatildeo procedimental num ambiente de modelaccedilatildeo
manual eacute altamente favoraacutevel para a agilizaccedilatildeo da produccedilatildeo de novo conteuacutedo numa ferramenta
de modelaccedilatildeo manual permitindo combinar e aproveitar eficientemente as vantagens das duas
vertentes
61 Trabalho Futuro
Existem no entanto aacutereas onde podem ser introduzidas melhorias O trabalho futuro poderaacute
focar-se nos seguintes pontos
Servidor embebido na ferramenta O servidor desenvolvido estava assente numa aplicaccedilatildeo de-
dicada separando-a assim da ferramenta de ediccedilatildeo Construct Por razotildees de conveniecircncia
seria desejaacutevel que estes recursos estivessem disponiacuteveis diretamente a partir da ferramenta
de ediccedilatildeo
Introduccedilatildeo de mais estruturas de dados Permitir parametrizar outros tipos de dados tais como
linhas texturas animaccedilotildees luzes etc A introduccedilatildeo destes novos tipos de estruturas iria
aumentar a flexibilidade na utilizaccedilatildeo da soluccedilatildeo desenvolvida
39
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Conclusotildees e Trabalho Futuro
Otimizar a comunicaccedilatildeo Devido ao foco desta dissertaccedilatildeo natildeo ser a comunicaccedilatildeo entre duas
aplicaccedilotildees esta foi implementada para apenas satisfazer as necessidades baacutesicas da solu-
ccedilatildeo Uma soluccedilatildeo multi-cliente poderia ser explorada Permitindo assim a um grupo de
modeladores partilharem recursos de geraccedilatildeo procedimental
Interaccedilatildeo via noacutes no Blender Implementar e testar uma interaccedilatildeo por paradigma de interaccedilatildeo
por grafos pode potencialmente facilitar a manipulaccedilatildeo dos valores dos paracircmetros de um
conteuacutedo a ser adicionado agrave cena Refletindo o paradigma utilizado no Construct o conceito
eacute atualmente utilizado por modeladores em Blender para a ediccedilatildeo de materiais
40
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Referecircncias
[ARB07] Daniel G Aliaga Paul A Rosen e Daniel R Bekins Style grammars for interactivevisualization of architecture IEEE Transactions on Visualization and ComputerGraphics 13786ndash797 2007 doi101109TVCG20071024
[Aut15a] Autodesk Autodesk 3DS Max 2015 [Online accessed 14-Fev-2015] URLhttpwwwautodeskcomproducts3ds-maxoverview
[Aut15b] Autodesk Autodesk Maya 2015 [Online accessed 14-Fev-2015] URL httpwwwautodeskcomproductsmayaoverview
[Aut15c] Autodesk Compare to other products 2015 [Onlineaccessed 14-Fev-2015] URL httpwwwautodeskcomsuitesentertainment-creation-suitecomparecompare-to-other-products
[Bap14] Anderson Baptista Blender Encyclopedia Modifiers 2014 [Online ac-cessed 14-Fev-2015] URL httpwwwblendergurucomarticlesblender-101-modifier-encyclopedia
[Bau72] Bruce G Baumgart WINGED EDGE POLYHEDRON REPRESENTATION Na-tional Technical Information Service U S DEPARTMENT OF COMMERCE 5285(October) 1972 URL httpwwwdticmildtictrfulltextu2755141pdf
[Bez68] Pierre E Bezier How Renault Uses Numerical Control for Car Body Design andTooling SAE International 1968 URL httpwwwsaeorgtechnicalpapers680010 doi104271680010
[Beacutez81] Pierre E Beacutezier A view of CADCAM volume 13 1981 URL httplinkinghubelseviercomretrievepii0010448581901421doi1010160010-4485(81)90142-1
[ble15a] Blender 3D 2015 [Online accessed 16-Fev-2015] URL httpwwwblenderorg
[ble15b] Blender Extensions 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDoc26ManualExtensions
[ble15c] Blender Scripts Development 2015 [Online accessed 16-Fev-2015] URL httpwikiblenderorgindexphpDev25PyScripts
41
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
REFEREcircNCIAS
[Ble15d] Input Nodes mdash Blender Reference Manual 2015 [Online acces-sed 14-Fev-2015] URL httpswwwblenderorgmanualrenderblender_rendermaterialsnodestypesinputhtml
[Ble15e] Modifiers and deformation 2015 [Online accessed 14-Fev-2015] URL httpwikiblenderorgindexphpDoc24ManualModifiers
[Bro96] John Brooke Sus-a quick and dirty usability scale Usability evaluation in industry189(194)4ndash7 1996
[Bro13] John Brooke SUS A Retrospective 8(2)29ndash40 2013 URL httpwwwusabilityprofessionalsorg
[BWS10] Martin Bokeloh Michael Wand e Hans-Peter Seidel A connection between par-tial symmetry and inverse procedural modeling ACM Transactions on Graphics29(4)1 2010 doi10114518333511778841
[Beacute83] Pierre E Beacutezier UNISURF from styling to tool-shop volume 4 1983doi1010160166-3615(83)90017-9
[Cab92] JJSP Cabral An introduction to splines for use in computer graphics amp geometricmodeling 9278 1992 doi1010160955-7997(92)90106-H
[Cob84] Elizabeth Susan Cobb Design of Sculptured Surfaces Using the B-spline Represen-tation PhD thesis 1984 AAI8420751
[Cod15] Catlike Coding Numberflow procedural texture editor for Unity httpcatlikecodingcomnumberflow 2015 [Online accessed 14-Fev-2015]
[dCB09] Giliam J P de Carpentier e Rafael Bidarra Interactive GPU-based pro-cedural heightfield brushes Proceedings of the 4th International Confe-rence on Foundations of Digital Games - FDG rsquo09 page 55 2009 URLhttpportalacmorgcitationcfmdoid=15365131536532doi10114515365131536532
[FPRJ00] Sarah F Frisken Ronald N Perry Alyn P Rockwood e Thouis R Jones Adaptivelysampled distance fields a general representation of shape for computer graphics InProceedings of the 27th annual conference on Computer graphics and interactivetechniques pages 249ndash254 ACM PressAddison-Wesley Publishing Co 2000
[GMSe09] James Gain Patrick Marais e Wolfgang Straszlig er Terrain sketching In Proceedingsof the 2009 symposium on Interactive 3D graphics and games - I3D rsquo09 page 312009 URL httpdlacmorgcitationcfmid=15071491507155doi10114515071491507155
[Hol15] Joachim Holmeacuter Shader Forge httpacegikmocomshaderforge2015 [Online accessed 14-Fev-2015]
[IOI06a] Takashi Ijiri Shigeru Owada e Takeo Igarashi Seamless integration of initial sket-ching and subsequent detail editing in flower modeling Computer Graphics Forum25617ndash624 2006 doi101111j1467-8659200600981x
42
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
REFEREcircNCIAS
[IOI06b] Takashi Ijiri Shigeru Owada e Takeo Igarashi The Sketch L-System Global Con-trol of Tree Modeling Using Free-Form Strokes In International Symposium onSmart Graphics pages 138 ndash 146 2006 doi10100711795018_13
[Jon02] Jeff Jonaitis Box Modeling Technique 2002 URL httpwwwjjonaitiscomtutotuto2htm
[KK12] Lars Krecklau e Leif Kobbelt Interactive modeling by procedural high-level pri-mitives Computers amp Graphics 36(5)376ndash386 2012 URL httpwwwsciencedirectcomsciencearticlepiiS0097849312000672
[KR79] Joseph Kung e Gian-Carlo Rota A practical guide to splines 3281 1979doi1010160001-8708(79)90033-1
[Lik32] Rensis Likert A technique for the measurement of attitudes 1932
[Lin68] A Lindenmayer Mathematical models for cellular interaction in development PartsI and II Journal of Theoretical Biology 18280ndash315 1968
[LRBP12] Steven Longay Adam Runions Freacutedeacuteric Boudon e Przemyslaw Prusinkiewicz Tre-eSketch Interactive Procedural Modeling of Trees on a Tablet The proceedingsof the Eurographics Symposium on Sketch-Based Interfaces and Modeling pages107ndash120 2012 doi102312SBMSBM12107-120
[LWW08] Markus Lipp Peter Wonka e Michael Wimmer Interactive visual editing of gram-mars for procedural architecture volume 27 2008 doi10114513606121360701
[MGP06] Niloy J Mitra Leonidas J Guibas e Mark Pauly Partial and approxi-mate symmetry detection for 3D geometry ACM SIGGRAPH 2006 Pa-pers on - SIGGRAPH rsquo06 page 560 2006 URL httpdlacmorgcitationcfmid=1141924$delimiter026E30F$nhttpportalacmorgcitationcfmdoid=11793521141924doi10114511793521141924
[MP96] Radomiacuter Mech e Przemyslaw Prusinkiewicz Visual models of plants interactingwith their environment Proceedings of the 23rd annual conference on Computergraphics and interactive techniques 96397ndash410 1996 URL httpdlacmorgcitationcfmid=237279 doi101145237170237279
[MWH+06] Pascal Muumlller Peter Wonka Simon Haegler Andreas Ulmer e Luc Van Gool Pro-cedural modeling of buildings volume 25 2006 doi10114511419111141931
[Pat12] Gustavo Patow User-friendly graph editing for procedural modeling ofbuildings IEEE Computer Graphics and Applications 32(2)66ndash75 2012doi101109MCG2010104
[PF01] Ronald N Perry e Sarah F Frisken Kizamu A system for sculpting di-gital characters Computer Graphics Annual Conference (SIGGRAPH2001) pages 47ndash56 2001 URL httpcdc310-wwwscopuscominwardrecordurleid=2-s20-0035152623amppartnerID=40ampmd5=13c79efac9e9afa8d78dae0157a9bbb9 doi101145383259383264
43
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
REFEREcircNCIAS
[PHL+09] Wojciech Palubicki Kipp Horel Steven Longay Adam Runions Brendan LaneRadomiacuter Mech e Przemyslaw Prusinkiewicz Self-organizing tree models for imagesynthesis 281 2009 doi10114515313261531364
[Pix15] Pixologic Zbrush Overview 2015 [Online accessed 14-Fev-2015] URL httppixologiccomzbrushfeaturesoverview
[PLH88] Przemyslaw Prusinkiewicz Aristid Lindenmayer e James Hanan Developmentmodels of herbaceous plants for computer imagery purposes 22141ndash150 1988doi101145378456378503
[Pru00] Przemyslaw Prusinkiewicz Simulation modeling of plants and plant ecosystems4384ndash93 2000 doi101145341852341867
[ŠBM+10] Ondrej Štrsquoava Bedrich Beneš Radomir Mech Daniel G Aliaga e Peter KrištofInverse procedural modeling by automatic generation of L-systems ComputerGraphics Forum 29(2)665ndash674 2010 doi101111j1467-8659200901636x
[SM08] Karan Singh e James Mccrae Sketch-Based Path Design pages 95ndash102 2008
[SMBC13] Pedro Brandatildeo Silva Pascal Muumlller Rafael Bidarra e Antoacutenio CoelhoNode-based shape grammar representation and editing PCG pages 1ndash8 2013 URL httpsgraphicstudelftnlPublications-new2013SMBC13aSMBC13apdf
[Smi06] Colin Smith On Vertex-Vertex Systems and Their Use in Geometric and Bi-ological Modelling Computer Science page 216 2006 URL httpalgorithmicbotanyorgpaperssmithcodis2006pdf
[Spe11] Scott Spencer ZBrush Character Creation Advanced Digital Sculpting John Wileyamp Sons 2011
[STdKB08] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra AProposal for a Procedural Terrain Modelling Framework EGVE Symposium pa-ges 1ndash4 2008 URL httpgraphicstudelftnl~rafamyPapersbidarraEGVE08pdf
[STdKB10] Ruben Michaeumll Smelik Tim Tutenel Klaas Jan de Kraker e Rafael Bidarra Interac-tive creation of virtual worlds using procedural sketching Proceedings of pages1ndash4 2010 URL httpgraphicstudelftnlPublications-new2010STDB10eSTDB10epdf
[sub14] Subdivision modelling 2014 URL httptheorangeduckcompagesubdivision-modelling
[Tec15] Unity Technologies Mecanim Animation System httpdocsunity3dcomManualMecanimAnimationSystemhtml 2015 [Online accessed 14-Fev-2015]
[TM06] Robert F Tobler e Stefan Maierhofer A mesh data structure for rendering andsubdivision Proceedings of WSCG (International Conference in Central Eu-rope on Computer Graphics Visualization and Computer Vision) pages 157ndash1622006 URL httpvisplorenetpublicationspdfsVRVis_2005_11_08_08_27_27pdf
44
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
REFEREcircNCIAS
[VGDA+12] Carlos a Vanegas Ignacio Garcia-Dorado Daniel G Aliaga Bedrich Benes ePaul Waddell Inverse design of urban procedural models ACM Transactionson Graphics 311 2012 URL httpdlacmorgcitationcfmdoid=23661452366187 doi10114523661452366187
[WP95] Jason Weber e Joseph Penn Creation and rendering of realistic trees SIGGRAPHrsquo95 - Proceedings of the 22nd Annual Conference on Computer Graphics and Inte-ractive Techniques pages 119ndash128 1995 doi101145218380218427
[WWSR03] Peter Wonka Michael Wimmer Franccedilois Sillion e William Ribarsky Instant archi-tecture volume 22 2003 doi101145882262882324
45
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
REFEREcircNCIAS
46
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Anexo A
Mensagens JSON
A1 JSON de Pedido de Abertura do Projeto Urban
Subject OpenProj
Data Urbancprj
A2 JSON de Informaccedilatildeo do Projeto Urban
Subject ProjectInfo
Data
Graphs [
name Building
parameters [
name height
type Single
name Roof
type Boolean
name Roof height
type Single
47
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Mensagens JSON
name Door at Face
type Int32
name Door at Position
type Int32
name Has windows on lower
type Boolean
]
inputs [
name Input
]
name City Streets
parameters []
inputs []
name Cube
parameters [
name Base Width
type Single
name Base Height
type Single
name Height
type Single
48
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Mensagens JSON
]
inputs []
name Detailed Roof
parameters []
inputs [
name Input30
]
]
A3 Exemplo de Pedido para Gerar um Grafo
Subject Generate
Data
graph_name House
project testcprj
parameters [
name height
value 5
name roof height
value 5
]
inputs [
gate_name Base
file_path planeobj
]
49
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Mensagens JSON
A4 Exemplo de Resposta de Erro do Servidor
Subject Error
Data Error executing the graph
50
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Anexo B
Principais Grafos do Projeto Urban
Figura B1 Grafo Building como visto no editor Construct
51
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Principais Grafos do Projeto Urban
Figura B2 Grafo CityStreets como visto no editor Construct
Figura B3 Grafo Window como visto no editor Construct
52
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Principais Grafos do Projeto Urban
Figura B4 Grafo Door como visto no editor Construct
Figura B5 Grafo DetailedRoof como visto no editor Construct
53
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Principais Grafos do Projeto Urban
54
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Anexo C
Cenaacuterios Resultantes dos Testes comUtilizadores
Figura C1 Cenaacuterio criado pelo utilizador 3
55
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-
Cenaacuterios Resultantes dos Testes com Utilizadores
Figura C2 Cenaacuterio criado pelo utilizador 4
56
- Paacutegina de Rosto
- Conteuacutedo
- Lista de Figuras
- Lista de Tabelas
- 1 Introduccedilatildeo
-
- 11 Contexto
- 12 Motivaccedilatildeo e Problema
- 13 Objetivos
- 14 Estrutura do documento
-
- 2 Estado da Arte e Trabalhos Relacionados
-
- 21 Interaccedilatildeo intuitiva para a Modelaccedilatildeo Procedimental de mundos virtuais
-
- 211 Teacutecnicas Sketch-based
- 212 Editores Visuais
- 213 Modelaccedilatildeo Procedimental Invertida
-
- 22 Modelaccedilatildeo 3D Manual
-
- 221 Teacutecnicas de Modelaccedilatildeo Manual
- 222 Ferramentas de Modelaccedilatildeo 3D
-
- 23 Sumaacuterio
-
- 3 Metodologia
-
- 31 Meacutetodo de Trabalho
- 32 Metodologias de Interaccedilatildeo com o Utilizador
-
- 321 Modificadores
- 322 Grafos
- 323 Funccedilotildees
-
- 33 Arquitetura da Soluccedilatildeo
-
- 331 Vantagens
- 332 Desvantagens
-
- 34 Protocolo de Comunicaccedilatildeo
-
- 4 Implementaccedilatildeo
-
- 41 Aplicaccedilatildeo Cliente - Ferramenta de Modelaccedilatildeo Manual
- 42 Aplicaccedilatildeo Servidor - Ferramenta de modelaccedilatildeo procedimental
- 43 Comunicaccedilatildeo
- 44 Construccedilatildeo da Interface
- 45 Execuccedilatildeo
-
- 5 Teste da Soluccedilatildeo e Resultados Obtidos
-
- 51 Metodologia de Teste
- 52 Resultados
-
- 6 Conclusotildees e Trabalho Futuro
-
- 61 Trabalho Futuro
-
- Referecircncias
- A Mensagens JSON
-
- A1 JSON de Pedido de Abertura do Projeto Urban
- A2 JSON de Informaccedilatildeo do Projeto Urban
- A3 Exemplo de Pedido para Gerar um Grafo
- A4 Exemplo de Resposta de Erro do Servidor
-
- B Principais Grafos do Projeto Urban
- C Cenaacuterios Resultantes dos Testes com Utilizadores
-