Your SlideShare is downloading. ×
Grammars for Generative Art - Lectures @ Sofia University #5
Grammars for Generative Art - Lectures @ Sofia University #5
Grammars for Generative Art - Lectures @ Sofia University #5
Grammars for Generative Art - Lectures @ Sofia University #5
Grammars for Generative Art - Lectures @ Sofia University #5
Grammars for Generative Art - Lectures @ Sofia University #5
Grammars for Generative Art - Lectures @ Sofia University #5
Grammars for Generative Art - Lectures @ Sofia University #5
Grammars for Generative Art - Lectures @ Sofia University #5
Grammars for Generative Art - Lectures @ Sofia University #5
Grammars for Generative Art - Lectures @ Sofia University #5
Grammars for Generative Art - Lectures @ Sofia University #5
Grammars for Generative Art - Lectures @ Sofia University #5
Grammars for Generative Art - Lectures @ Sofia University #5
Grammars for Generative Art - Lectures @ Sofia University #5
Grammars for Generative Art - Lectures @ Sofia University #5
Grammars for Generative Art - Lectures @ Sofia University #5
Grammars for Generative Art - Lectures @ Sofia University #5
Grammars for Generative Art - Lectures @ Sofia University #5
Grammars for Generative Art - Lectures @ Sofia University #5
Grammars for Generative Art - Lectures @ Sofia University #5
Grammars for Generative Art - Lectures @ Sofia University #5
Grammars for Generative Art - Lectures @ Sofia University #5
Grammars for Generative Art - Lectures @ Sofia University #5
Grammars for Generative Art - Lectures @ Sofia University #5
Grammars for Generative Art - Lectures @ Sofia University #5
Grammars for Generative Art - Lectures @ Sofia University #5
Grammars for Generative Art - Lectures @ Sofia University #5
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Grammars for Generative Art - Lectures @ Sofia University #5

1,605

Published on

Published in: Education, Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,605
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
28
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Граматики за генеративно изкуство ● Триизмерни обекти с Context Free ● Псевдо 3D с Context Free ● Enter : Structure Synth & EisenScript ● Примитиви ● Ротация и скалиране ● Гранични условия ● Цикли ● Препроцесор ● Позиция на камерата ● Изход към Meshlab ● Използване на външна система за render Подготвени от Г.Пенков като част от курса на ФМИ за зимен семестър 2010/2011. Заглавното изображение адаптирано от оригиналната граматика от http://contextfree.lazymoon.org.
  • 2. Триизмерни обекти в Context Free ● В Context Free няма механизъм за използване на трето измерение или перспектива ● Може да се симулира с помоща на skew ● Въможно е да бъдат описани псевдо 3D обекти с пътища... ● ...или с помоща на външна програма, която генерира проектираните в равнината координати ● Може да бъде симулирано “избледняване в дълбочина” с помоща на скалиране и промяна на прозрачността.
  • 3. Псевдо 3D в Context Free http://www.contextfreeart.org/gallery/view.php?id=2482 Kryptonite by pakin
  • 4. Enter: Structure Synth ● Създаден рез 2007 следвайки идеята на Context Free, имплементиран от Mikael Christensen ● Понастоящем е с актуална стабилната версия 1.0 ● Напълно безплатен софтуер с отворен код. ● Резултатът от изпълнението е изцяло триизмерни структури - мешове. ● Позволява изход към други програми за изграждане на рендърната графика. ● Езикът за програмиране тук се нарича Eisen Script и прилича на CFDG, но е с допълнена функционалност, в това число : ● Гранични условия по брой итерации ● Допълнителни примитиви ● Променливи и константи ● Налага някои ограничения : ● Няма възможност за дефиниране на собтвени примитиви по аналогия с пътищата в CFDG. ● Няма примитиви, които да са аналог на кривите в CFDG
  • 5. Enter : EisenScript ● Макар да прилича на CFDG, EisenScript реално не се придържа напълно към идеята за контекстно-свободността на граматиките ● Няколко съществени разлики преди да се започне с първото EisenScript описание: ● Няма startshape директива – диркетно се изписват правилата за извод. Може да са повече от едно ● Всички параметри се разписват във фигурни скоби преди, а не след името на правилата / примитивите. ● Не може да се описват правила с имена, които съвпадат, с която и да било ключова дума (например : A, a, S, R и т.н.) ● В EisenScript има реално измерение Z – трета ортонормирана координатна ос. ● Няма позиционирани параметри (в [ ] скоби) ● Изцяло UNICODE – т.е. Може да има правила, които са на кирилица, японски или всеки друг език.
  • 6. Примитиви в Structure Synth ● Разписват се по подразбиране в трансформационно пространство с размерност 1 ● Тук примитивите са: ● Mesh ● Grid ● Line ● Dot ● Box ● Sphere ● Няма значение дали са с малки или големи букви. ● В следващата версия се очакват още – цилиндър и тор
  • 7. Гранични условия ● set maxdepth [integer] > [rule] ● Спира изпълнението след целочислен брой итерации (генерации). ● Горна граница на рекурсията за всички правила, когато е зададено глобално. ● Може да се зададе и след името на дадено правило, но без ключовата дума set ● Може да се укаже кое правило да бъде изпълнено след даден брой итерации ● set maxobjects [integer] ● След като са били създадени [integer] брой обекти генерирането завършва. ● Съществен параметър при генериране на по-сложни структури, при които има експоненциално нарастване на броя форми
  • 8. Гранични условия ● set minsize [float] set maxsize [float] ● Позволява задаване на параметър за това колко голям или малък може да бъде даден обект. ● Големината на стандартната “кутия”, в която съществуват формите е с размерност (0,0,0) до (1,1,1) и съответно има диагонал с размер sqrt(3), което е около 1.7. ● Ще прекрати само генерирането на форми, които не отговарят на условието, но другите които отговарят ще продължат да се генерират.
  • 9. Ротация и скалиране ● Може да става по всяка една от осите ● Ротация с помоща на парметри rx, ry, rz ● Скалиране с един или три параметъра set maxdepth 400 R1 R2 rule R1 { rule R2 { { x 1 rz 6 ry 6 s 0.99 } R1 { x -1 rz 6 ry 6 s 0.99 } R2 { s 2 } sphere { s 2 } sphere } }
  • 10. Грид обект с ротация по осите set maxdepth 50 R1 rule R1 { { z 0.8 rz 15 s 0.99 h 10 } R1 { s 0.7 } grid }
  • 11. Правило с maxdepth
  • 12. maxdepth с терминално правило 0 1 2 3 ... Menger Sponge
  • 13. Цикли в Structure Synth ● Могат да се описват подобни на циклите в CFDG последователности от повтарящи се правила. ● При последователно прилагане на верига от цикли (може и само с едно повтаряне) може да се постигне смисъла на позиционираните параметри в CFDG ● Алтернативен метод е прилагане на правило, което се разписва в себе си, но е ограничено с maxdepth ● За разлика от CFDG не може в тялото на цикъла да има повече от едно правило или примитива. Т.е. Циклите не определят нови блокове от правила (код)
  • 14. Цикли // с maxdepth П1 rule П1 maxdepth 4 { 9 * { ry 15 x 1 } box {x 11 ry 90 } П1 } // троен цикъл П2 rule П2 { 10 * { y -2 s 0.8 a 0.9 } 4 * { x 11 ry 90 } 9 * { ry 15 x 1 } box }
  • 15. Задаване позиция на камерата ● set translation – задаване на транслация на координатната система ● set rotation – положение на завъртане на камерата ● set pivot – разположение на камерата ● set scale - промяна размера на всички примитиви ● Може да се полиучи и автоматично от самия Structure Synth
  • 16. Пространство на цветовете ● По подразбиране се позиционира в (H,S,V) в: hue 0 / sat 1 / brightness 1 ● Стойностите на alpha канала са винаги коефициент спрямо текущата прозрачност ● За разлика от CFDG, където може да се извади от стойността на ● Може да се зададе директна стойност за цвят в hex (#FFFFFF) описание с помоща на параметър color ● Може да се укаже “смесване” на текущия цвят с dаден цвят с помоща на параметър blend [color] [strength] където вторият параметър е между 0 и 1
  • 17. Примерна граматика
  • 18. Препроцесор на Structure Synth ● SS има вграден препроцесор за константи. Към момента той може да се използва по два начина : #define constant value ● Замества всяко срещане на varname със стойността value #define varname value (float:0-40) ● Създава допълнителен панел със слайдери, от които омже да се контролира стойността тази константа
  • 19. Meshlab 1.3+ помощно средство за работа със Eisen Script ● Безплатен софтуер с отв.рен код – базиран на QT4, компилира се на всякакви платформи. ● Използва се за прости операции в 3D сцени (мешове). ● Може да конвертира между много от популярните формати. ● И най-важното – след версия 1.3 има напълно работещ плъгин за работа с EisenScript и манипулация на получените мешове. ● За сега все още само Windows бетата поддържа четене на EisenScript, но се справя безпроблемно и с по-сложни мешове.
  • 20. Изход към външен renderer ● С помоща на вградени в Structure Synth шаблони ● Изход към ● renderman ● povray ● sunflow ● Blender (с експорт скрипт или през meshlab) ● През MeshLAB към: ● 3DS Max ● Alias Wavefront ● Autocad ● Стандартен OBJ и STL файл ● 3D принтер ● мн. други
  • 21. Експорт и рендър със Sunflow 1 2 Подаване към Sunflow през командния ред Извикване на Export Template от Structure Synth 3 Резултатно изображение след raytrace
  • 22. Генерирано със Structure Synth Обработено и текстурирано в Blender G.Penkov K.Meratchev
  • 23. 3D дърво на питагор Structure Synth / Sunflow Matt Cavanagh http://www.flickr.com/photos/cav666/4564863224/
  • 24. Библиография ● http://structuresynth.sourceforge.net/ - Сайт на Structure Synth ● http://en.wikipedia.org/wiki/Menger_sponge - Menger Sponge ● http://www.flickr.com/groups/structuresynth/ - галерия със структури изработени със Structure Synth ● http://meshlab.sourceforge.net - Безплатния софтуер Meshlab ● http://www.blender.org/ - сайт на Blender Community. Безплатно сваляне на софтуера
  • 25. За Домашно ● Да се реализира ES граматика, която създава една от структурите на Дейв Болингер посочени на следните адреси: ● http://www.flickr.com/photos/davebollinger/3255401859/ ● http://www.flickr.com/photos/davebollinger/3256231684/ ● http://www.flickr.com/photos/davebollinger/3188554712/ ● http://www.flickr.com/photos/davebollinger/4463667116/ ● http://www.flickr.com/photos/davebollinger/4421407990/
  • 26. За домашно...

×