18 June 2009

The End

All good things must come to an end...
Today I attended the final presentations via Skype as I was unable to make it to Sydney. I think I severely underestimated the experience of presenting with a team via Skype. I've used video conferencing in both a one on one and team environments before, but never as a presenter with half my presenting team on the other end. Being physically removed from my team (who did a wonderful job) made it difficult for me to follow on from points or to add some more information as per the presenting style that we had worked with all semester thus far, and as a result I felt I was unable to add a couple of key points. It was also difficult to know what was going on as I could not see or participate in the demonstration of the environment. In retrospect it would have been possible for both me and my team to be in the environment together as an online multi player map and follow each other around. Something obvious that I realised as we were demonstrating.

That aside, we posted the final environment, two videos and ten images to our Team Blog. Overall I was happy with how it all came together, however there were still many many things that I would have liked to have either added or improved upon.

To recap my contribution to this assignment I was focused, primarily, with the over all environment the building was situated in. This included constructing and texturing the terrain, vegetation placement, roads, surrounding buildings, AI and interactivity placement and flow graphing and capturing raw footage for the final videos.

As we had a clear placement point for our building, I was able to work on the environment, sans the building, until the other team members had finished constructing it on a blank map. At that point it was just a matter of exporting the building as a series of levels, importing them into my working environment and then grouping the building and dropping it onto it's final placement point. At which point I was able to add the extra layer of interactivity to the building to finish it off.

This allowed us to work more independently, a work flow that we discovered was necessary when working long distances with a project of this nature. Without the immediacy and quality of collaboration close physical proximity offers, working fluidly in a single project space which requires constant and careful version management meant that hundreds of megabytes of data would need to have been traded, almost constantly, and kept track of.

One of the major dangers of a project of this nature is information sharing. The nature of a Crysis project means that everybody needs the most up to date information, all the time. This is fine when working asynchronously on projects where either file sizes are smaller, or it is multi document in nature and easily split into separate areas. Crysis does not tend to this mode of sharing. There is no shared repository with version control which allows you to check in and out data. You have to share the whole thing, all the time, with everyone, and make sure that everybody is working with the same information. Otherwise inconsistencies and conflict can enter and potentially increase project time.

Dividing up the task into independent parts allowed us to work concurrently on our specific areas and then bring them together at major milestones thus reducing the potential risks of missing data, conflicting information or miscommunication.

This meant that we all held a clear piece of a puzzle, which could be put together faster and simpler rather than disjointedly taking turns to stir the same pot and trying to leave messages on what to do next. Or worse, realising we were stirring yesterdays leftovers.

Thankfully we never encountered any major problems with our work flow, the exchange, flow and incorporation of information was almost seamless. Albeit not as optimised as it could have been if we had been working desks, rather than states, apart.

Overall, I feel that even with the limitations of steep learning curves and time zones we were able to successfully collaborate and produce a piece of quality work that we can be proud of.

I would like to thank Michael, Joanne and Pui Pui for all their hard work on this project. Jeremy and Graham for giving us such a challenging and interesting course. And finally the rest of the class for all their shared knowledge, support and assistance throughout the semester which would otherwise have made this project many times harder.

-Gordon

17 June 2009

Assignment 3 - Contribution

Again, as with the previous assignments I focussed more on the Terrain and environment. Below is a breakdown of my major tasks in this collaboration.

  • Creating new Heightmap and terrain textures
  • Importing some previous content from the Assignment 2 environment (roads, sounds, assets... etc)
  • Importing final building model from blank environment
  • Creation of new surrounding building assets.
  • Adding vegetation
  • Adding detail and assets to the environment
  • Adding AI to environment and the building
  • Adding and flowgraphing lights around the environment
  • Capturing raw footage for inclusion in the presentation videos

Assignment 3 Work - Exporting previous assets

Assignment 3 Work - Video Capture

In discussion with Joanne and Michael I captured, compressed and sent a total of six separate clips to be included in the final presentation videos.

To capture the videos I used the following settings in Sandbox

Con_Restricted 0
r_displayinfo 0
r_nodrawnear 1
cl_hud 0
fixed_time_step 0.033333

capture_frames 1 (to start)
capture_frames 0 (to finish)

Whilst a deceptively simple task, it became very laborious with some clips having a turnaround from capture to upload of around 90 minutes. This was due mainly to the size of the environment and it's increasing use of system resources over time which led to many crashes and constant restarts. Misbehaving AI was another major problem with constant flowgraphing issues leading to many AI standing still or not behaving as desired during capture.

In the end I was able to send the completed environment back to my team who were able to assist in additional video and image capture as time constraints closed in.

All clips can be found in my MediaFire folder for this course.

Enjoy!

Assignment 3 Work - Exporting Building to New Environment

Assignment 3 Work - New Surrounding Buildings

Assignment 3 Work - Flowgraphing Lights

Flowgraphing Interior lights with proximity triggers

The goal of the interior was to reflect a Boulee's original intention of day becoming night and night be day. Unfortunately due to the limitations of Crysis' VisAreas we were unable to darken the space and remove the ambient light that is included in the environments. However, keeping with the idea of the original concept, I decided to add some proximity sensitive lights to the display panels on the upper floor. Connected to a proximity trigger the simply turn on when someone is near and then turn off again when you leave the area. The idea of this was to add a level of interactivity with the space whilst keeping in mind that those from the lower levels would probably be distracted from the a permanent light illuminating the upper level.

Attached is the flowgraph. And a demonstration of the result by video.

http://www.youtube.com/watch?v=FEPcXG0B2IQ


Flowgraphing Street lights to reflect the ToD

Adding lighting the path leading up to the building added an extra level of detail and the overall ambiance of the scene. However, street lights aren't always on, they follow timers, so to recreate that effect I used a simple flowgraph using the ToD as a trigger to turn the light and light beam particle effect on and off a sunrise and sunset

http://www.youtube.com/watch?v=IkF8PqK

Assignment 3 Work - New Heightmap

It was clear from the previous assignment that the Heightmap exhibited signs of possible exaggerated variance between some areas. The glaring example of this was the problems I had when trying to fine tune the river.



Which didn't quite line up with the reference images which suggest a more subtle fall to the land on both sides indicating that the height of each bank area is a similar height.




To look into this I went back to the original SRTM dataset and noticed something interesting. The terrain was clearly a lot flatter than the original height map seemed to demonstrate. With this knowledge I went back to Angel Island demonstration videos on Crymod and decided that the grey scale spread needed to be reduced. It seems that the original hightmap generated was using an elevation range of purely the cropped areas height range. This meant that it was dealing with a smaller range of heights, yet still mapping approximately 256 colours resulting in a more "detailed" but out of scale height map.

To fix this I regenerated the map but this time using the entire DEM's range which is usually up to around 290 meters. This resulted in a much flatter, but more ultimately more realistic terrain than before.

New Heightmap:


Previous HeightMap:


Result:

The resulting map didn't have to be tweaked an awful lot to add the water relatively accurately. The landscape only needed to be dropped or raised an average of 2m around the site of the water bodies for it to look similar to the reference images.

No more scary cliffs!

Assignment 3 Work - Adding Vegetation

Assignment 3 Work - Adding AI

06 June 2009

Specialisation - Advanced Terrain (Posted to wiki)

I've posted my specialisation tutorial to the class wiki which outlines how to use existing data sources of real world locations to create terrain.

Originally I felt this would be a Beginner / Medium level tutorial, however I think due to the length and ability to adapt to custom application sets by focusing more on the concepts of each step I feel it is more a Medium/Advanced level tutorial.

I hope someone finds this useful in the future.

Big thanks to Zapwizard and 4k1r4 over at crymod for posting some pretty awesome tutorials which I used as the basis for this one.

http://www.mediafire.com/file/idujvmwm4xd/Advanced+Terrain.pdf

07 May 2009

Assignment Two

Final Crysis environment
http://files.filefront.com/13720477

Video One
video


Video Two
video

IMAGES











17 April 2009

Real world data. (SRTM Heightmaps)

One of the major shortcomings with the draft environment was the reliance on approximate eyeballing for the terrain modelling. In a architecture where millimeter accuracy is king these kind of approximations are just fundamentally blasphemous, especially, when there are alternatives. Enter SandBox2s height mapping capability. first established in GIS applications and a well worn concept in other gaming engines, Sandbox2 allows you use a pixel per unit greyscale bitmap to act as the reference for height data. An accurate enough heightmap can produce pretty stunning results.

After searching the moding forums I came across two old threads and a link to another outside forum each detailing methods for creating accurate heightmaps. Originally I thought I would be creating one from the contours I generated in sketchup previously, however I found there was a much better way for achieving the same result.

4K1R4’s tutorial on CryMod (http://crymod.com/thread.php?threadid=17539) Shows the method of using Google Earth, Google Sketchup and 3Dem (a GIS modelling program) to create heightmaps. Unfortunately the video tutorial is no longer in existence and 4K1R4 is no long and active member and has not responded to my request to re-post the tutorial, but reading through the thread I was able to glean some insight into how the process worked.

From what I can gather the preliminary stages are similar to those for making a 1:1 texture map of your area. First you bring your area into SketchUp from Google Earth, place a 2048 x 2048 square around the data you wish to map. Then, placing that square back into Google Earth as a reference, you can find the real world co-ordinates for each corner of your site.

Once those co-ordinates have been found you can download SRTM data from a source and the create a greyscale BMP for the area you need.

The best workflow I found was on the Transport Tycoon forums where MGSteve has posted a pretty comprehensive tutorial (http://www.tt-forums.net/viewtopic.php?f=29&t=27052) of how you can use a google earth add on to quickly download data for the area you need rather than trawl through the cryptic ftp sites that usually host such data. This approach uses a program called MicroDem for the data manipulation and is the one I used for my tests.

This first image shows the google earth plugin in action, once you’ve found the data set you need, you can download it and open it in MicroDEM.

This image shows the data set loaded in MicroDem.

The resulting greyscale bitmap for the Hyde Park area.

And the results in our map.

Unfortunately after several attempts, I am still unable to create a working heightmap, however I will keep trying some alternate methods.

03 April 2009

Assingment One

Assignment One - Video One - Showing the draft building in it’s environment.
http://www.mediafire.com/?2nj2n5o0w2n

Assignment One - Video Two - Showing the draft building from above.
http://www.mediafire.com/?odbyzynggnl





02 April 2009

Assignment One Contributions

For this assignment my contribution to the team effort was focused on the terrain and environment that the building was to be located in. This allowed me to work by myself while the rest of the team worked together on the model since my being in Perth hindered us from working effectively together on the building model. When the model was exported from 3D max as an object I was able to import it into the environment and place it in the desired location.

Breakdown of contribution:
  • Location
  • Created new level
  • Created an aerial view of our area using images gathered from google earth
  • Texturing of the terrain with the aerial images
  • Height sculpturing based on reference images
  • Placement of vegetation
  • Placement of roads
  • Placement of surrounding buildings
  • Importing and placement of building object
  • Image captures
  • Video captures
  • Contribution to 600 word team blog post

Assignment One Progress

After researching the background of the project, it was discovered that little is known about Boullée’s intentions for location. However, the subject of the building allowed the narrowing down of a suitable context. After his death Sir Issac Newton was buried in Westminster Abbey in London, where he still remains. Taking London as the base location, the project required a site that would be able to accommodate the 300m/sq cenotaph. After looking through google earth it became apparent that the area that is Hyde Park and neighbouring Kensington Gardens would be the most suitable location with enough space to place the building.


View Larger Map

Upon selecting that location, a high resolution texture map was created of a 2084m x 2084m area centered on the site using images stitched together after being taken from google earth. A base terrain was created in Sandbox 2 and was textured using this texture map.

By exporting the terrain from google earth into Sketchup a contour map was created by taking sections through the terrain. This assisted in modifying the terrain so that it reflected the real topography and in the placement of some of the major roads, paths, trees and buildings. Once the draft environment was ready the 3ds model was imported and placed.

Now that the draft environment has been put together it has allowed the team to see where the potential sticking points are in the modeling and associated work-flows are. The map itself appears bare until the perimeter buildings are added, which in turn are hard to place an manipulate in SandBox. This most likely calls for them to be modeled outside SandBox and imported. Trying to model the terrain accurately in SandBox can be a little tricky. Exploring the possibility of a height map might help. Accurate placement of roads and paths is also an issue. Creating a hight detail guide which can be placed as a texture map might also be considered.


26 March 2009

Week 2 - Collaboration Topic [Context]

Context

The context of this post is confusion. How am I supposed to write 200+ words on such a broad topic with only one resource? How do I chose that one source from the apparent tens of thousands of scholarly articles out there which merely use the term rather than defining it? A lot of my research has come up with many books about something IN context, but not OF context. Have I missed something? Clearly not, Roy Dilley in his introduction to The Problem of Context, a collection of essays giving focus to the concept of context in regards to social anthropology seems to agree with me.

“Despite the importance of context to social anthropology - and the fact that it has been so central for so long - it is surprising to find how little attention has been given to the topic over the history of the discipline.” - R. Dilley 1992 pp.2 (http://books.google.com.au/books?id=CSP7Wd53WQgC)

Dilley continues by looking at how the concept has been defined in other fields such as linguistics and philosophy as well as adding his own ideas that context is about making a “connection” and “by implication, disconnection” (Dilley pp.x) between things to help define the object of contextualisation, this idea fits well with the words Latin origin; contextus, which means to join together. This joining in term helps create meaning, so we could say that an object IN context is that which is connected to something else in meaning.

Placing context in context helped to create meaning for itself in this case, and hopefully placing my other collaboration topics in context will help me investigate those as well.

21 March 2009

Week 2 - Research

The Chosen Architecture

The team...

Week 2 - Tech Test

MicroStation -> Sandbox2

This week, our team undertook a series of tests to determine possible fabrication workflows, my individual task was to investigate possible ways to import models constructed in MicroStation into Sandbox2.


After doing some initial research it was evident that workflows outside the typical 3D Gaming modelling packages, (including Maya and 3D Studio Max,) were uncommon. This is in part due to the Crytek model format or a ".CGF" (Crytek Geometry File,) file. Being a proprietary format found only in CryEngine, the ability to create these files natively from a typical modelling package does not exist, with the exception being from within CryTek’s own software. In order to bring models in from 3rd party software packages CryTek and CryMod community developers have released various model translation utilities. CryTek's Mod SDK for Sandbox2 includes a 3D Studio Max plugin which allows you to create .CGF files strainght from the 3D Studio Max enviroment and appears to be the easiest and most documented way of bringing models in from outside SandBox.


A team of CryMod members have also created a model converter which changes models saved in the Collada format (*.dae), into CGF models. The Collada model format is developed by the non-profit organisation Khronos Group as a intermediate model format for sharing geometry between model packages. Since it is an XML Schema based format this makes it a prime candidate for simple parsing into other formats, in this case a CFG file. The ColladaCGF utility, developed in Python, requires that the Python Library be installed first. Once done, it installs a context menu item that allows you to run the converter straight on the file in windows explorer.


With the infrastructure in place, the first test was to bring in a series of simple boxes at various sizes, to check scaling, from MicroStation. I created 1m, 10m and 100m sized cubes using the Solid modelling tools. It is also worth noting that MicroStation has a few modelling systems, the main three being Solids, Surface and Feature Solids. More on those later. Once exported to .dae models from MicroStation, I parsed them through the converter which spits out a CGF and MLD file of the same name. The later being a texture file generated from the solid.

Once created, I moved the files into the Game\Objects\ directory so they could be accessed immediately from within the editor.


1Unlimited Free Image and File Hosting at MediaFire

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

18 March 2009

Week 1 - Research

"Research two Unbuilt Architectures"

Our research assignment this week is to find two examples of "Unbuilt Architecture". These are the overlooked, often forgotten, maybe ahead of their time, sometimes understated or just plain un-buildable artifacts of Architectural History that line the pages of Journals, research papers, books and competition retrospectives, and it will be our major task for this semester to finally realise one of these, albeit in digital form.

Coming to the Architectural Computing degree from straight Architecture there are about 50 projects that suddenly come to mind and fill me with excitement by getting the opportunity to finally see one of them "finished". However, we are limited to just one, so below I will outline the pros and cons for constructing my top two "projects that should have been built... but weren't".


Unbuilt Architecture One
La Ville Contemporaine (Le Corbusier)


Pros:
  • Well known project,
  • Would make use of Crysis' large scale maps,
  • Potential as a base for urban analysis,

Cons:
  • Very large scale, could be difficult to model,
  • Large scale could overpower the individual scale experience (not seeing trees for the forest, or modelling them!)
  • Lack of decent documentation for all types of buildings



Unbuilt Architecture Two
Cénotaphe de Newton (Etienne-Louis Boullée)

Pros:
  • An architectural cornerstone
  • Geometrically simple to model
  • Large scale

Cons:
  • Too simple to model?
  • Circular nature could create a lot of polys
  • Not much documentation about the "human scale" side of the design
  • Where do you put it? Context?
Each potential project has it's individual pro's and cons. It should be noted that while they might prove easy - or difficult - to model, the real power of CryEngine2 is in the potential for interactivity. A point that should be considered very seriously when choosing the final project.

15 March 2009

Week 1 - In Class Exercise

"In Depth Basic Tutorial"

In class we were given the task of trying to follow this tutorial. The tutorial itself was well structured and introduced us to many of the key aspects in CryEngine2's "Sandbox" editor including Voxels, and basic some basic AI. Overall I found sandbox relatively straight forward to use for this task, however it is clear that there are many more powerful tools to take advantage of as we move deeper into this technology in the coming weeks.

Below are some screen shots detailing my progress in each stage of the tutorial as well as some notes on where I tried to take each part a little bit further for my own investigation.

14 March 2009

Week 1 - Introduction

Hello tutors, team-mates, class-mates and the rest of the world. Welcome to my personal blog for Arch1392 @ FBE/UNSW (University of New South Wales). This blog outlines my adventure into the world of digital fabrication for architecture using Crytek's CryEngine2 for Crysis.

Whilst my interests in Architectural Computing are usually aligned to the Building Information Modelling domain I look forward to spawning into the world of Real Time Visualisation and taking on all it has to offer.

Wish me luck.

- Gordon Davies