Juntando Modelação 3D Manual e Procedimental · JSON JavaScript Object Notation ... encontramos...

76
FACULDADE DE E NGENHARIA DA UNIVERSIDADE DO P ORTO Juntando Modelação 3D Manual e Procedimental Rui Miguel Barros Gonçalves Mestrado Integrado em Engenharia Informática e Computação Orientador: Rui Rodrigues Co-orientador: Pedro Silva Co-orientador: João Jacob 1 de Fevereiro de 2016

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