<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8883050</id><updated>2011-04-21T16:15:15.748-07:00</updated><title type='text'>Realtime morphing</title><subtitle type='html'>Project diary for a realtime morphing demonstration. We are two skilled students at gsCept university creating an advanced real time morphing simulation. This is our diary about it.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://gsceptmorph.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://gsceptmorph.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Primal_r</name><uri>http://www.blogger.com/profile/02562678289956291669</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://www.oskarholmstrand.com/PICT0315-mini.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>26</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8883050.post-113458065494266826</id><published>2005-12-14T09:16:00.000-08:00</published><updated>2005-12-14T09:19:20.326-08:00</updated><title type='text'>Shades of Divinity</title><content type='html'>Well, the project has been finished for a long time now.. Kinda just forgot to blog that we're finished... =)&lt;br /&gt;&lt;br /&gt;We dubbed it "Shades of Divinity", and the final product + more info can be found at &lt;a href="http://oskarholmstrand.com/sod/"&gt;http://oskarholmstrand.com/sod/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8883050-113458065494266826?l=gsceptmorph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gsceptmorph.blogspot.com/feeds/113458065494266826/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8883050&amp;postID=113458065494266826' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/113458065494266826'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/113458065494266826'/><link rel='alternate' type='text/html' href='http://gsceptmorph.blogspot.com/2005/12/shades-of-divinity.html' title='Shades of Divinity'/><author><name>Primal_r</name><uri>http://www.blogger.com/profile/02562678289956291669</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://www.oskarholmstrand.com/PICT0315-mini.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8883050.post-111046832092589066</id><published>2005-03-10T06:49:00.000-08:00</published><updated>2005-03-10T08:04:47.210-08:00</updated><title type='text'>It's all coming together</title><content type='html'>One day left on the project and one week until the final presentation :)&lt;br /&gt;Overall It feels pretty good, I feel like I have reached my goals with this project.&lt;br /&gt;There is always more stuff to do but a "final" version of the code that will be used for the presentation is done. Later i might pack the textures and HLSL files into the .exe for easer distribution&lt;br /&gt;(if someone on this planet wanna download it for some reason:).&lt;br /&gt;&lt;br /&gt;Short summary on what's seen in the demo.&lt;br /&gt;&lt;br /&gt;Alot of the lightning/shading data is sampled from textures to give the artist as much control of the shading as possible.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Textures&lt;/span&gt;&lt;br /&gt;- Diffuse color&lt;br /&gt;- Specular color&lt;br /&gt;- Shininess&lt;br /&gt;- Normal&lt;br /&gt;- Reflectivity&lt;br /&gt;- Height&lt;br /&gt;- Light&lt;br /&gt;- Attenuation&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Ground&lt;/span&gt;&lt;br /&gt;- Normalmapped per pixel diffuse and specular lightning (Phong model)&lt;br /&gt;- Parallax mapping for greater 3D feel.&lt;br /&gt;- Receives soft shadows.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Angel(s)&lt;/span&gt;&lt;br /&gt;- Normalmapped per pixel diffuse and specular lightning (Phong model)&lt;br /&gt;- Environment reflections&lt;br /&gt;- Renormalised tangent space basis each pixel for accurate lightning&lt;br /&gt;- Morphs between all textures (diffuse, specular, normal, shininess, reflectivity)&lt;br /&gt;- Receives and generates soft shadows&lt;br /&gt;- Smooth skinning&lt;br /&gt;- Kochanek Bartels Hermite spline interpolation for translation track&lt;br /&gt;- Spherical Linear Interpolation using Quaternions for rotation track&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The spotligh&lt;/span&gt;&lt;br /&gt;- Projected texture instead of the original spotlight model&lt;br /&gt;- Attenuation map to control the fallof.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ambient lightning&lt;/span&gt;&lt;br /&gt;- Ambient lightning ala "half life 2" so detail from the normalmap is visible even when shadowed,&lt;br /&gt;traditional ambient lightning just makes everything completely flat.&lt;br /&gt;- Works by specifying an ambient cube representing the color of the light flowing from that direction in space&lt;br /&gt;- Eaxh pixel rendered samples and blends between 3 of the ambient cube sided depending on It's worldspace normal&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The sky&lt;/span&gt;&lt;br /&gt;- Ordinary skybox&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Shadows&lt;/span&gt;&lt;br /&gt;- 1024x1024 shadow map&lt;br /&gt;- 2x2 PCF sampled 5 times to give "soft" shadow edges.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Volumetric light/fog&lt;/span&gt;&lt;br /&gt;- Lit depending on the lights projected texture&lt;br /&gt;- Shadows from blocking objects&lt;br /&gt;- Fog is generated using 3 octaves of perlin noise from a 16x16x16 texture&lt;br /&gt;- Rendered at a small resolution and via "smart" filtering rescaled to fit the screen while minimizing aliasing artefacts&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Morphing&lt;/span&gt;&lt;br /&gt;- Transitionless slider based morph affecting the whole model&lt;br /&gt;- Plane morph dividing the model in 2&lt;br /&gt;- Lightbased morph where the morphvalue is sampled from the projected lights alpha channel.&lt;br /&gt;&lt;br /&gt;The demo engine is coded using C++ and D3D9 in VC.2003.&lt;br /&gt;All shaders is written is HLSL and some makes use of vs/ps 3.0 because of their length and branching requirements.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Maya exporter plugin&lt;/span&gt;&lt;br /&gt;- Exports one mesh with the bound skeleton if any&lt;br /&gt;- Triangulates polygons&lt;br /&gt;- Splits vertices depending on hard/soft edges and texture seams&lt;br /&gt;- Calculates tangents and binormals taking into account artist modified vertex normals&lt;br /&gt;- Complete skeleton hierarchy with rotation and translation track exported including bindpose&lt;br /&gt;- Unlimited amount of skinweights per vertex&lt;br /&gt;&lt;br /&gt;The exporter is coded in C++ in VC.2003 using the Maya C++ API.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8883050-111046832092589066?l=gsceptmorph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gsceptmorph.blogspot.com/feeds/111046832092589066/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8883050&amp;postID=111046832092589066' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/111046832092589066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/111046832092589066'/><link rel='alternate' type='text/html' href='http://gsceptmorph.blogspot.com/2005/03/its-all-coming-together.html' title='It&apos;s all coming together'/><author><name>Mogwai</name><uri>http://www.blogger.com/profile/13357913929962473153</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8883050.post-111037828144485160</id><published>2005-03-09T06:15:00.000-08:00</published><updated>2005-03-09T06:24:41.446-08:00</updated><title type='text'>Getting wrapped up</title><content type='html'>Well, animation is almost done. I have successfully completed the animation, but it needs some minor fixing until it feels more professional. This workflow - sketching up the whole animation first, and then finalize and perfect it - is the best. Only drawback is that people in the classroom looks over my shoulder and thinks "uh, that's not good", and when some people does this, it's kind of irritation.&lt;br /&gt;&lt;br /&gt;Anyway. Right now the follow things needs some attention - then we're ready to go gold.&lt;br /&gt;&lt;br /&gt;- &lt;span style="font-weight:bold;"&gt;animation&lt;/span&gt;&lt;br /&gt;The animation needs more attention. This is actually a never-ending task, so I will most likely finish up the other things first, then work the animation until no time is left.&lt;br /&gt;&lt;br /&gt;- &lt;span style="font-weight:bold;"&gt;model&lt;/span&gt;&lt;br /&gt;Needs to be tesselated in some areas for better deformations. This must be done in consideration of the normalmaps, which are already generated. Perhaps I could generate new normal-maps, as my workflow allows for it... .Hmm... I placed all manual changes in layers in a .psd file, so I could change the original by just changing the background layers.... (Must be thought over.)&lt;br /&gt;&lt;br /&gt;- &lt;span style="font-weight:bold;"&gt;skin weights&lt;/span&gt;&lt;br /&gt;If I add more polygons, I must also paint how they are weighted. &lt;br /&gt;&lt;br /&gt;- &lt;span style="font-weight:bold;"&gt;gui&lt;/span&gt;&lt;br /&gt;Fix the gui so it's more personalized&lt;br /&gt;&lt;br /&gt;- &lt;span style="font-weight:bold;"&gt;icon&lt;/span&gt;&lt;br /&gt;I'm not happy with the icon I made. I have very fuzzy ideas about new ones, so until I can think of something more concrete, the old one will have to do.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8883050-111037828144485160?l=gsceptmorph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gsceptmorph.blogspot.com/feeds/111037828144485160/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8883050&amp;postID=111037828144485160' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/111037828144485160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/111037828144485160'/><link rel='alternate' type='text/html' href='http://gsceptmorph.blogspot.com/2005/03/getting-wrapped-up.html' title='Getting wrapped up'/><author><name>Primal_r</name><uri>http://www.blogger.com/profile/02562678289956291669</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://www.oskarholmstrand.com/PICT0315-mini.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8883050.post-110840018546735642</id><published>2005-02-14T08:54:00.000-08:00</published><updated>2005-02-14T08:56:25.470-08:00</updated><title type='text'>Animation Started</title><content type='html'>Have started to animate the character now. So far, about 6 seconds or so is completed. I've noticed quite some problems with my rigging and skin-painting, but I'm correcting them along the way. Hopefully, the number of seconds/day will increase as my rig gets more final, skinpainting gets done and most important - I get used to animating this specific rig.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8883050-110840018546735642?l=gsceptmorph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gsceptmorph.blogspot.com/feeds/110840018546735642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8883050&amp;postID=110840018546735642' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/110840018546735642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/110840018546735642'/><link rel='alternate' type='text/html' href='http://gsceptmorph.blogspot.com/2005/02/animation-started.html' title='Animation Started'/><author><name>Primal_r</name><uri>http://www.blogger.com/profile/02562678289956291669</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://www.oskarholmstrand.com/PICT0315-mini.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8883050.post-110839921610764277</id><published>2005-02-14T08:32:00.000-08:00</published><updated>2005-02-14T08:40:16.106-08:00</updated><title type='text'>Perlin noise</title><content type='html'>Switched from creating the fogvolumes from 2 scrolling textures to a 3d perlin noise. This gives much more "realistically" looking fogvolumes and it's easier to control/predict the result.&lt;br /&gt;The fogvolume in itself is made by a 16x16x16 texture (only 4k memory) stretched over an area of 64x64x64 and using 3 octaves of noise to give enough detail.&lt;br /&gt;Also wrote the shaders för lightbased morphing and plane morphing in ps 3.0.&lt;br /&gt;Optimized the volumetric lightning a little futher (because it's so fillrate heavy every cycle counts :)  and now It's running pretty smooth.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8883050-110839921610764277?l=gsceptmorph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gsceptmorph.blogspot.com/feeds/110839921610764277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8883050&amp;postID=110839921610764277' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/110839921610764277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/110839921610764277'/><link rel='alternate' type='text/html' href='http://gsceptmorph.blogspot.com/2005/02/perlin-noise.html' title='Perlin noise'/><author><name>Mogwai</name><uri>http://www.blogger.com/profile/13357913929962473153</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8883050.post-110839998817425345</id><published>2005-02-11T07:44:00.000-08:00</published><updated>2005-02-14T08:57:49.316-08:00</updated><title type='text'>Textures done</title><content type='html'>Well, I'm pretty sure I posted a post that got lost somewhere along the way... So sorry for the slow update on the graphics part.&lt;br /&gt;&lt;br /&gt;Anyway, this is current status:&lt;br /&gt;Textures are almost done! .. Everything except the reflection map and some tweaking. The problem is that I can't see the reflection map on my current card / pixel shader implementation. In order to see it, either Fredrik would have to write a specific pixel shader in 2.0 just for me to test the result - which would not only add more work but also a pitfall if the implementations would differ. The other solution - which also solves a future problem with not being able to test animation - is to aquire a gfx card with ps3.0, i.e. a gf6800.  &lt;br /&gt;&lt;br /&gt;After some serious problems with getting our school to even respond, we finally got rejected. And then another teacher ordered the card anyway. So, textures will be 100% done pretty soon after the gfx card has been installed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8883050-110839998817425345?l=gsceptmorph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gsceptmorph.blogspot.com/feeds/110839998817425345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8883050&amp;postID=110839998817425345' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/110839998817425345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/110839998817425345'/><link rel='alternate' type='text/html' href='http://gsceptmorph.blogspot.com/2005/02/textures-done.html' title='Textures done'/><author><name>Primal_r</name><uri>http://www.blogger.com/profile/02562678289956291669</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://www.oskarholmstrand.com/PICT0315-mini.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8883050.post-110794439479767865</id><published>2005-02-09T02:07:00.000-08:00</published><updated>2005-02-09T02:19:54.796-08:00</updated><title type='text'>Half life 2 shading implemented :)</title><content type='html'>Just added support for a skybox and it really lifts the overall feeling compared to a black background :)&lt;br /&gt;Also implement "indirect lightning" ala Half Life 2 so i get rid of the ugliness that comes with normal ambient lightning.&lt;br /&gt;The reason for this is when using normal ambient lightning the details from the normalmap won't show and the model just looks flat, i tried adding very faint pointligts that only affected the diffuse component but the indirect lightning implemented in half life 2 gives equally good result and it's cheaper.&lt;br /&gt;It works by setting up an "ambient cube" which is 6 colors that measures the color of the light "flowing" from that direction, then depending on the surface worldspace normal i sample from 3 of the ambient cube sides and blend between them depending on the normals direction.&lt;br /&gt;This gives pretty good results and the surface detail from the normalmap is visible even when shadowed.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8883050-110794439479767865?l=gsceptmorph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gsceptmorph.blogspot.com/feeds/110794439479767865/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8883050&amp;postID=110794439479767865' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/110794439479767865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/110794439479767865'/><link rel='alternate' type='text/html' href='http://gsceptmorph.blogspot.com/2005/02/half-life-2-shading-implemented.html' title='Half life 2 shading implemented :)'/><author><name>Mogwai</name><uri>http://www.blogger.com/profile/13357913929962473153</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8883050.post-110677634914402870</id><published>2005-01-26T13:42:00.000-08:00</published><updated>2005-01-26T13:52:29.146-08:00</updated><title type='text'>What's new</title><content type='html'>Been busy the last week because I finally got a new computer to put the 6800 in.&lt;br /&gt;The card is fast, VERY fast and with SM 3.0, Ultrashadow, floating point blending etc I've been able to increase the visual quality and get a nice speedbost.&lt;br /&gt;Also implemented the volumetric lightning a little different and now its very fast.&lt;br /&gt;Got rid of aliasing problems regarding the volumetric light and right now I'm in the process of adding volumetric fog.&lt;br /&gt;Overall it's starting to look really good when everything starts coming together :)&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8883050-110677634914402870?l=gsceptmorph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gsceptmorph.blogspot.com/feeds/110677634914402870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8883050&amp;postID=110677634914402870' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/110677634914402870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/110677634914402870'/><link rel='alternate' type='text/html' href='http://gsceptmorph.blogspot.com/2005/01/whats-new.html' title='What&apos;s new'/><author><name>Mogwai</name><uri>http://www.blogger.com/profile/13357913929962473153</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8883050.post-110572403347485606</id><published>2005-01-14T09:16:00.000-08:00</published><updated>2005-01-14T09:33:53.473-08:00</updated><title type='text'>Back on track again,</title><content type='html'>Since my last update I haven't had so much time to devote into the project because of another course we read parallel (me and a classmate made a quake3 map viewer in java for a graphics assignment).&lt;br /&gt;But now I'm back on track just in time for the second project demonstration.&lt;br /&gt;Today me and Oskar met and decided what to show during the demonstration.&lt;br /&gt;I added some configurability to the viewer, we can now disable /enable environment mapping, volumetric lightning and plane morphing. We can also switch textures for the projected light and control some animation of it. Everything to make it easier to demonstrate for our professors.&lt;br /&gt;&lt;br /&gt;I also updated my timeschedule for the third phase of the project. Since I've been very much ahead of my current schedule it was almost completely rewritten since the original.&lt;br /&gt;&lt;br /&gt;To sum it up, my goals with the project is almost achieved so I will spend the remaining phase&lt;br /&gt;- rewriting the engine to fit the new nVidia card (still haven't tested it since the PSU hasn't arrived)&lt;br /&gt;- increase the visual quality&lt;br /&gt;- optimize everything&lt;br /&gt;- write some kind of demo which will be used in the final presentation of the project.&lt;br /&gt;- Fix bugs that might appear, probably regarding animation since that part isn't thoroughly tested yet.&lt;br /&gt;&lt;br /&gt;I'll probably wont be able to keep myself away from testing new effects and shader techniques but nothing "new" is planned for the project.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8883050-110572403347485606?l=gsceptmorph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gsceptmorph.blogspot.com/feeds/110572403347485606/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8883050&amp;postID=110572403347485606' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/110572403347485606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/110572403347485606'/><link rel='alternate' type='text/html' href='http://gsceptmorph.blogspot.com/2005/01/back-on-track-again.html' title='Back on track again,'/><author><name>Mogwai</name><uri>http://www.blogger.com/profile/13357913929962473153</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8883050.post-110510998608317436</id><published>2005-01-07T06:53:00.000-08:00</published><updated>2005-01-07T06:59:46.083-08:00</updated><title type='text'>textures starting...</title><content type='html'>So, the modelling is 100%, and the rigging is pretty much finished (haven't painted bone weights yet) ... Anyway - I have now started to seriously work on the textures. This is a VERY important part. Ugly textures = ugly overall look. Nice textures = nice overall look. &lt;br /&gt;&lt;br /&gt;For the rigging I decided to do many things manually. This is because my experience says that when I try to make things work automatically, they tend to backstab me by not working at all and be very difficult to adjust. By having them manually operated, I will have to do some more work when animating, but I will most likely avoid some very irritating errors. I have tested the rig by baking it and it seems to work fine. At first it didn't work because I had an animated group above the root joint, which ofcourse wasn't read by the exporter. I solved this simply by creating an expression in the rootjoint to copy the things from my animated group. These expressions are baked when baking the simulation, so it works good.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8883050-110510998608317436?l=gsceptmorph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gsceptmorph.blogspot.com/feeds/110510998608317436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8883050&amp;postID=110510998608317436' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/110510998608317436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/110510998608317436'/><link rel='alternate' type='text/html' href='http://gsceptmorph.blogspot.com/2005/01/textures-starting.html' title='textures starting...'/><author><name>Primal_r</name><uri>http://www.blogger.com/profile/02562678289956291669</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://www.oskarholmstrand.com/PICT0315-mini.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8883050.post-110296342155211949</id><published>2004-12-13T10:34:00.000-08:00</published><updated>2004-12-13T10:43:41.553-08:00</updated><title type='text'>Small update.</title><content type='html'>Haven't done so much the past week because I needed to put some time into the other courses I read pararell with the project. (I'm doing a Quake3 map viewer in java :)&lt;br /&gt;But I implemented parallaxmapping for the ground today and it looks pretty cool.&lt;br /&gt;Also built a new viewer for Oskar and explained how the lightning is calculated so he can start planning his textures.&lt;br /&gt;&lt;br /&gt;The GFX card is here but I need a better PSU before I dare to try it, this computer only has a 250w PSU right now and I'll probably blow it if I try using the card now.&lt;br /&gt;But a 305w PSU is ordered and it'll probably be here soon.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8883050-110296342155211949?l=gsceptmorph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gsceptmorph.blogspot.com/feeds/110296342155211949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8883050&amp;postID=110296342155211949' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/110296342155211949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/110296342155211949'/><link rel='alternate' type='text/html' href='http://gsceptmorph.blogspot.com/2004/12/small-update.html' title='Small update.'/><author><name>Mogwai</name><uri>http://www.blogger.com/profile/13357913929962473153</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8883050.post-110237425274186912</id><published>2004-12-06T14:59:00.000-08:00</published><updated>2004-12-06T15:04:12.743-08:00</updated><title type='text'>Good model done...</title><content type='html'>The highpoly good mesh has now been completed and exported as a normal map... Feels kind of wierd to work on something for a long time then just accomplish a 2048x2048 map from it... But - it looks pretty cool... Well I haven't really been able to check if all details are good, because I can't pan in the current viewer - but I think there only will be minor errors which can be fixed in photoshop...&lt;br /&gt;&lt;br /&gt;Also slowly started rigging. I really hate rigging. But it's coming along ok. It's actually probably almost finished but I don't wanna call it finished yet, because I'm not sure if it's good enough - have to test it a bit more. The irritating thing is that in order to finally test it, I have to paint the skin weights. If it turns out to be not ok - I will have to paint them all again. (unless the import/export skin weights can magically help me) .. Anyway - therefore, I'm kind of avoiding finishing the rigging right now =)&lt;br /&gt;&lt;br /&gt;The high-poly evil mesh will be started today... I really should be going home to sleep (soo tired), but I kind of feel like atleast starting the evil mesh first =)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8883050-110237425274186912?l=gsceptmorph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gsceptmorph.blogspot.com/feeds/110237425274186912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8883050&amp;postID=110237425274186912' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/110237425274186912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/110237425274186912'/><link rel='alternate' type='text/html' href='http://gsceptmorph.blogspot.com/2004/12/good-model-done.html' title='Good model done...'/><author><name>Primal_r</name><uri>http://www.blogger.com/profile/02562678289956291669</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://www.oskarholmstrand.com/PICT0315-mini.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8883050.post-110208088978859810</id><published>2004-12-03T05:17:00.000-08:00</published><updated>2004-12-03T05:34:49.790-08:00</updated><title type='text'></title><content type='html'>Short summary on whats happened since the last post.&lt;br /&gt;&lt;br /&gt;- Implemented volumetric lightshaft rendering with shadows after an idea from ATI:s presentation at GDC, this is really fillrate heavy but looks so cool so i'll probably have to include it somehow in the final demo :).&lt;br /&gt;&lt;br /&gt;- Continued working on the engine and it now has full skinning support according to my exported data from Maya. Also found out that if you paint skinweights in maya it can generate more skinweights then the max you set when the skin is bound.&lt;br /&gt;&lt;br /&gt;- Added some GUI elements to control the morphing and a timeline to control the animation.&lt;br /&gt;&lt;br /&gt;- The shader that will be used for the angel is almost complete, there are some things that can be optimised away like the spotlight calculations if i use a projected texture for that to.&lt;br /&gt;&lt;br /&gt;- Tried a nice thing where a plane divides the model and affects the morphing. Ex, the top half of the angel can be "good" and the lower half "fallen". This might be used for some nice effect later on. Im also thinking of doing the morph gradually where the divider cuts the angel to get a more soft transition and add some noise function so the transition doesnt look so gradual.&lt;br /&gt;&lt;br /&gt;The GFX card hasn't arrived yet wich is bad because im really keen to try the performance of it and see how big the performance win is for shadowbuffers, but it'll hopefully be here soon.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8883050-110208088978859810?l=gsceptmorph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gsceptmorph.blogspot.com/feeds/110208088978859810/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8883050&amp;postID=110208088978859810' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/110208088978859810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/110208088978859810'/><link rel='alternate' type='text/html' href='http://gsceptmorph.blogspot.com/2004/12/short-summary-on-whats-happened-since.html' title=''/><author><name>Mogwai</name><uri>http://www.blogger.com/profile/13357913929962473153</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8883050.post-110190719206997607</id><published>2004-12-01T05:17:00.000-08:00</published><updated>2004-12-01T05:21:05.400-08:00</updated><title type='text'>1 week behind</title><content type='html'>Well... I went to the SACO education fair, and then to the elmia dreamhack, representing the school... and it took some time I would have used on the project so I'm about 1 week behind now... But I'm compensating by working harder and more. &lt;br /&gt;&lt;br /&gt;Currently I'm doing the high-poly mesh for the good angel - to be used in the generation of the normal maps. It's proceeding along nicely, but sure takes some time. I've also adjusted the low-poly mesh in some areas to better fit the requirements of the high-poly. .. The evil angel will be created in Zbrush, which gives room for more smooth things and such...&lt;br /&gt;&lt;br /&gt;over and outzors.&lt;br /&gt;&lt;br /&gt;Oh and I really need the gfx-card soon, because this card is having some problems handling 2048 textures...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8883050-110190719206997607?l=gsceptmorph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gsceptmorph.blogspot.com/feeds/110190719206997607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8883050&amp;postID=110190719206997607' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/110190719206997607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/110190719206997607'/><link rel='alternate' type='text/html' href='http://gsceptmorph.blogspot.com/2004/12/1-week-behind.html' title='1 week behind'/><author><name>Primal_r</name><uri>http://www.blogger.com/profile/02562678289956291669</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://www.oskarholmstrand.com/PICT0315-mini.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8883050.post-110069350057379904</id><published>2004-11-17T04:11:00.000-08:00</published><updated>2004-11-17T04:20:52.496-08:00</updated><title type='text'>Small progress update</title><content type='html'>&lt;a href="http://photos1.blogger.com/img/66/2178/640/projected_01.jpg"&gt;&lt;img style="BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; MARGIN: 2px; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid" src="http://photos1.blogger.com/img/66/2178/400/projected_01.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Projected texture with shadows&lt;a href="http://www.hello.com/" target="ext"&gt;&lt;img style="BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: 0px; BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px" alt="Posted by Hello" src="http://photos1.blogger.com/pbh.gif" align="absMiddle" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Implemented projective texturing for the spotlight and it looks pretty cool.&lt;br /&gt;The above image looks a "little" gray because  the diffuse texture is gray both for the floor and the angel. All the color is coming from the projected texture, instead of using a constant diffuse / speclar color for the light i sample them from the projected texture.&lt;br /&gt;&lt;br /&gt;Also the shadows is much smoother and has fewer aliasing problems than in the last post. I switched from a second depth shadow buffer and uses a first depth with a constant bias instead.&lt;br /&gt;The shadow edges are filtered using a 3x3 PCF filter to make them look smoother (yes, it's a percentage closes filter but not bilinearly interpolated as some claim a PCF filter would be, the original paper about PCF from sigraph '87 does NOT use bilinear interpolation).&lt;br /&gt;&lt;br /&gt;I really hope the 6800 GT gfxcard will be here soon, with that i'll probably be able to boost the framerate quite a bit because of the hardware accelerated shadow rendering wich for some reason isn't implemented on ATI cards.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8883050-110069350057379904?l=gsceptmorph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gsceptmorph.blogspot.com/feeds/110069350057379904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8883050&amp;postID=110069350057379904' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/110069350057379904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/110069350057379904'/><link rel='alternate' type='text/html' href='http://gsceptmorph.blogspot.com/2004/11/small-progress-update.html' title='Small progress update'/><author><name>Mogwai</name><uri>http://www.blogger.com/profile/13357913929962473153</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8883050.post-110057372728900024</id><published>2004-11-15T18:55:00.000-08:00</published><updated>2004-11-15T19:07:28.483-08:00</updated><title type='text'>Progress update</title><content type='html'>&lt;a href="http://photos1.blogger.com/img/66/2178/640/2.jpg"&gt;&lt;img style="BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; MARGIN: 2px; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid" src="http://photos1.blogger.com/img/66/2178/400/2.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Shadow &lt;img style="BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: 0px; BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px" alt="Posted by Hello" src="http://photos1.blogger.com/pbh.gif" align="absMiddle" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;Since the last post i've been busy coding shadows, glow etc (im still in the vs/ps research/design phase of the project).&lt;br /&gt;The shadowing is done using an ordinary shadowmap and i managed to get rid of most aliasing artifacts by using a second depth shadowbuffer.&lt;br /&gt;It works by rendering the backfaces from the lights point of view instead of biasing the z-values for the frontfaces.&lt;br /&gt;By rendering the backfaces i move the z-fighting problem to the "shadowed" areas of the object, this however introduced some problems when using normalmapping (the texel normal on a backface seen from the light can be tilted so much that it's actually visible) but this was solved by computing a geometric selfshadowing term using the interpolated normal from the vertices instead of the fetched one from the normalmap.&lt;br /&gt;There is still some aliasing problems when a face is close to parallell to the light and at the moment i dont know if this can be helped at all.&lt;br /&gt;I've also tried some different filtering techniques to soften/antialias the shadows, 2x2 PCF, 3x3 blur etc and each of them is good except in special cases so i havent decided yet with one to use.&lt;br /&gt;&lt;br /&gt;Im now upp to in 3 passes to render a shadowed scene (1 for the shadowmap rendered from the lights perspective, 1 to compute the shadowing term and store that in alpha and 1 for the ordinary lightning etc wich gets alphablended with the previous pass).&lt;br /&gt;The last 2 passes could be combined when i get hold of a card that supports ps 3.0 but with ps 2.0 im running out of space because the added calculations for filtering the shadow makes me exceed the limit on number of instructions.&lt;br /&gt;&lt;br /&gt;I've also coded a pretty cool gloweffect but it remains to be seen if it's gonna be used in the final demo.&lt;br /&gt;&lt;br /&gt;The screenshot above shows the shadowing/selfshadowing running with a 3x3 blur filter and a 1024 x 1024 shadow map generated from a spotlight.&lt;br /&gt;There is only a flat normalmap and a green diffuse texture applied to the angel so it doesnt look to good but it's mainly to show the shadowing in progress.&lt;br /&gt;&lt;br /&gt;If the fps seems low it's just because the "real" pixel / vertexshaders are in use but there is not any fancy texturedata to really show them off.&lt;br /&gt;&lt;br /&gt;In the coming weeks i'll probably focus more on improving the shadow quality and fixing the engine design.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8883050-110057372728900024?l=gsceptmorph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gsceptmorph.blogspot.com/feeds/110057372728900024/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8883050&amp;postID=110057372728900024' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/110057372728900024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/110057372728900024'/><link rel='alternate' type='text/html' href='http://gsceptmorph.blogspot.com/2004/11/progress-update.html' title='Progress update'/><author><name>Mogwai</name><uri>http://www.blogger.com/profile/13357913929962473153</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8883050.post-109950575937704534</id><published>2004-11-03T10:00:00.000-08:00</published><updated>2004-11-03T10:15:59.376-08:00</updated><title type='text'>Engine progress</title><content type='html'>The engine is starting to shape up now.&lt;br /&gt;There are some design issues left but it's getting usable at least (it's hard to keep from "overdesigning" instead of just getting the job done :)&lt;br /&gt;There is a simple transform oriented scenegraph implemented with methods to collect renderable objects, lights, shadowcasters etc. so the rendering logic is controlled from the app layer (this makes it must simpler/faster to test effects etc).&lt;br /&gt;So far skinned and nonskinned meshes work both with/without normalmapping.&lt;br /&gt;&lt;br /&gt;There is only rotational skinning support right now but i'll implement the translation part in the near future.&lt;br /&gt;The rotation is interpolated using SLERP (Spherical Linear Interpolation) and seems to give close enough results when compared to maya.&lt;br /&gt;For the translation i'll probably use a hermite spline.&lt;br /&gt;&lt;br /&gt;I also skin the normals/tangents using only the rotational part of the skinmatrix, this isn't entirelly mathematically correct but gives reasonable results (accurately recomputing the TBN space per vertex per frame is out of the question).&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8883050-109950575937704534?l=gsceptmorph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gsceptmorph.blogspot.com/feeds/109950575937704534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8883050&amp;postID=109950575937704534' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/109950575937704534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/109950575937704534'/><link rel='alternate' type='text/html' href='http://gsceptmorph.blogspot.com/2004/11/engine-progress.html' title='Engine progress'/><author><name>Mogwai</name><uri>http://www.blogger.com/profile/13357913929962473153</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8883050.post-109931575556185816</id><published>2004-11-01T05:24:00.000-08:00</published><updated>2004-11-01T05:35:05.323-08:00</updated><title type='text'>Concept sketch 001</title><content type='html'>Well this isn't exactly how it's going to turn out, but they look pretty cool anyway so I'll post 'em for your pleasure...&lt;br /&gt;&lt;code&gt;&lt;a href="http://130.240.132.235:1071/pr-fallenangels4ice.jpg"&gt;&lt;img src="http://130.240.132.235:1071/pr-fallenangels4ice.jpg" border="0" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Well, the armor is from the regular angel actually, and have been a bit changed since this sketch. Colours are a little off, and wings shouldn't be that way at all.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8883050-109931575556185816?l=gsceptmorph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gsceptmorph.blogspot.com/feeds/109931575556185816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8883050&amp;postID=109931575556185816' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/109931575556185816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/109931575556185816'/><link rel='alternate' type='text/html' href='http://gsceptmorph.blogspot.com/2004/11/concept-sketch-001.html' title='Concept sketch 001'/><author><name>Primal_r</name><uri>http://www.blogger.com/profile/02562678289956291669</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://www.oskarholmstrand.com/PICT0315-mini.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8883050.post-109931532967648914</id><published>2004-11-01T05:20:00.000-08:00</published><updated>2004-11-01T05:22:09.676-08:00</updated><title type='text'>Demo controls, v.00.01</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Checkbuttons:&lt;/span&gt;&lt;br /&gt;Normalmap&lt;br /&gt;Specularity &lt;span style="font-style: italic;"&gt;(toggles both specular map and specular power map)&lt;/span&gt;&lt;br /&gt;Diffuse color &lt;span style="font-style: italic;"&gt;(if off, use a default colour)&lt;/span&gt;&lt;br /&gt;Wireframe &lt;span style="font-style: italic;"&gt;(grays out other controls)&lt;/span&gt;&lt;br /&gt;Shadows&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Sliders:&lt;/span&gt;&lt;br /&gt;Zoom amount&lt;br /&gt;Morph amount&lt;span style="font-style: italic;"&gt; [ angel -------- 50/50 -------- fallen ]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Time Controls:&lt;/span&gt; &lt; | &gt;&lt;br /&gt;Play &lt;span style="font-style: italic;"&gt;(starts animation, regular speed)&lt;/span&gt;&lt;br /&gt;Freeze &lt;span style="font-style: italic;"&gt;(pauses the animation)&lt;/span&gt;&lt;br /&gt;Backplay &lt;span style="font-style: italic;"&gt;(starts animation backwards, same speed)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Other buttons:&lt;/span&gt;&lt;br /&gt;Reset&lt;span style="font-style: italic;"&gt; (resets all controls to default values)&lt;/span&gt;&lt;br /&gt;Demo!&lt;span style="font-style: italic;"&gt; (starts the automatic controls)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Other controls:&lt;/span&gt;&lt;br /&gt;Scrollwheel = &lt;span style="font-style: italic;"&gt;zooms in/out, forward = in, backward = out&lt;/span&gt;&lt;br /&gt;Left buttonpress + mousemove = &lt;span style="font-style: italic;"&gt;camera pan&lt;/span&gt;&lt;br /&gt;Right buttonpress + mousemove = &lt;span style="font-style: italic;"&gt;Camera rotate&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;perhaps an invert mouse option?&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8883050-109931532967648914?l=gsceptmorph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gsceptmorph.blogspot.com/feeds/109931532967648914/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8883050&amp;postID=109931532967648914' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/109931532967648914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/109931532967648914'/><link rel='alternate' type='text/html' href='http://gsceptmorph.blogspot.com/2004/11/demo-controls-v0001.html' title='Demo controls, v.00.01'/><author><name>Primal_r</name><uri>http://www.blogger.com/profile/02562678289956291669</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://www.oskarholmstrand.com/PICT0315-mini.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8883050.post-109904779500351822</id><published>2004-10-29T03:57:00.000-07:00</published><updated>2004-10-29T04:03:15.003-07:00</updated><title type='text'>Exporter updated</title><content type='html'>Updated the G3D Maya exporter so I account for the artist generated smoothinggroups (hard / soft edges controlling vertex normals) when calculating the tangent and binormal.&lt;br /&gt;So now I calculate the tangent and binormal after the vertexsplit (a vertex can be split because of different texturecoords or normal depending on which face it belongs to) and align them to the artist generated normal. Hopefully this will solve some problems with sharp edges.&lt;br /&gt;Found a neat little function called "Gram-Schmidt orthogonalize" to align the tangent and binormal against the normal :)&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8883050-109904779500351822?l=gsceptmorph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gsceptmorph.blogspot.com/feeds/109904779500351822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8883050&amp;postID=109904779500351822' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/109904779500351822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/109904779500351822'/><link rel='alternate' type='text/html' href='http://gsceptmorph.blogspot.com/2004/10/exporter-updated.html' title='Exporter updated'/><author><name>Mogwai</name><uri>http://www.blogger.com/profile/13357913929962473153</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8883050.post-109890335076880991</id><published>2004-10-27T11:53:00.000-07:00</published><updated>2004-10-27T11:55:50.766-07:00</updated><title type='text'>Normal maps are evil</title><content type='html'>Darnit, my original post got lost. Not only are normal maps evil, blogger seems to be evil too!&lt;br /&gt;&lt;br /&gt;Anyway, what I had to say was: Normal maps may seem very versatile, but they are actually very specialized. This puts lots of pressure on the gfx artist (me). Anyway, my current problem consist of staying low-poly  while still getting more detail without having normal-map errors. I think most of the errors come from hard/soft edges, but I have faith in my newest attemt. Here I will use no hard edges and bevel all edges that are supposed to be hard then turn them soft. Except the blade, which I will keep hard so it gets real hard (hopefully).&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8883050-109890335076880991?l=gsceptmorph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gsceptmorph.blogspot.com/feeds/109890335076880991/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8883050&amp;postID=109890335076880991' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/109890335076880991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/109890335076880991'/><link rel='alternate' type='text/html' href='http://gsceptmorph.blogspot.com/2004/10/normal-maps-are-evil.html' title='Normal maps are evil'/><author><name>Primal_r</name><uri>http://www.blogger.com/profile/02562678289956291669</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://www.oskarholmstrand.com/PICT0315-mini.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8883050.post-109887586131861255</id><published>2004-10-27T04:13:00.000-07:00</published><updated>2004-10-27T04:17:41.316-07:00</updated><title type='text'>New GFX card :)</title><content type='html'>Just found out that i'll have access to a nVidia GeForce 6800 ultra card for this project.&lt;br /&gt;Using this card i'll be able to run the demo in much higher resolutions with antialiasing.&lt;br /&gt;I also got 32 bit FP so there will probably be fewer aliasing problems when using the shadowbuffer.&lt;br /&gt;It will probably take a week or two before i get the card so are gonna focus on designing the engine until then.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8883050-109887586131861255?l=gsceptmorph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gsceptmorph.blogspot.com/feeds/109887586131861255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8883050&amp;postID=109887586131861255' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/109887586131861255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/109887586131861255'/><link rel='alternate' type='text/html' href='http://gsceptmorph.blogspot.com/2004/10/new-gfx-card.html' title='New GFX card :)'/><author><name>Mogwai</name><uri>http://www.blogger.com/profile/13357913929962473153</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8883050.post-109887258741682268</id><published>2004-10-27T03:23:00.000-07:00</published><updated>2004-10-27T03:25:58.893-07:00</updated><title type='text'>Screenshot</title><content type='html'>&lt;a href="http://photos1.blogger.com/img/66/2178/640/g3dviewer_screen01.jpg"&gt;&lt;img style="BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; MARGIN: 2px; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid" src="http://photos1.blogger.com/img/66/2178/400/g3dviewer_screen01.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.hello.com/" target="ext"&gt;&lt;img style="BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: 0px; BACKGROUND: none transparent scroll repeat 0% 0%; PADDING-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px" alt="Posted by Hello" src="http://photos1.blogger.com/pbh.gif" align="absMiddle" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Posting a screenshot of the basic G3D Viewer.&lt;br /&gt;It's not completed yet but hopefully it will be enough to use for Oskar in the coming days. He will mainly use it to test his generated normalmaps.&lt;br /&gt;There is no lightcontrol implemented yet but there is a white light at a fixed position of 20 units from the objects center along the z-axis which should be enough to test the normalmap.&lt;br /&gt;&lt;br /&gt;The viewer is written in D3D and uses HLSL for shaders.&lt;br /&gt;The textures that contribute to the rendered image are&lt;br /&gt;- Diffuse color&lt;br /&gt;- Specular color&lt;br /&gt;- Normal map&lt;br /&gt;- Shininess&lt;br /&gt;&lt;br /&gt;The bumpmapping used is worldspace bumpmapping because in a later stage i'll use it on skinned meshes and it's convenient to do the lightning calulations in worldspace because i will have skinned my tangents/normals in worldspace.&lt;br /&gt;The shading is done using blinn and a correct half angle vector is calculated per pixel&lt;br /&gt;(not interpolated from the vertices because it's not a linear transform).&lt;br /&gt;The object is built of 2 triangles and its the normalmap that gives the apperance of a wavy / bumpy surface.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8883050-109887258741682268?l=gsceptmorph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gsceptmorph.blogspot.com/feeds/109887258741682268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8883050&amp;postID=109887258741682268' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/109887258741682268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/109887258741682268'/><link rel='alternate' type='text/html' href='http://gsceptmorph.blogspot.com/2004/10/screenshot.html' title='Screenshot'/><author><name>Mogwai</name><uri>http://www.blogger.com/profile/13357913929962473153</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8883050.post-109880863485704694</id><published>2004-10-26T09:28:00.000-07:00</published><updated>2004-10-26T09:37:52.593-07:00</updated><title type='text'>Viewer</title><content type='html'>After the project meeting today i started on a G3D viewer.&lt;br /&gt;Using the viewer Oskar will be able to test hist creations on his own and i can focus on design / implementation of the small engine that will drive the final demonstration.&lt;br /&gt;&lt;br /&gt;G3D viewer Features&lt;br /&gt;- Choose G3D Mesh to display&lt;br /&gt;- Choose wich diffuse color, normal, specular color, shininess textures to apply&lt;br /&gt;- Rotation and zooming of the mesh&lt;br /&gt;- Rotation and translation of a light&lt;br /&gt;&lt;br /&gt;Hopefully i'll be able to complete it until next week (have some exams this week so not so much time for the project).&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8883050-109880863485704694?l=gsceptmorph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gsceptmorph.blogspot.com/feeds/109880863485704694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8883050&amp;postID=109880863485704694' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/109880863485704694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/109880863485704694'/><link rel='alternate' type='text/html' href='http://gsceptmorph.blogspot.com/2004/10/viewer.html' title='Viewer'/><author><name>Mogwai</name><uri>http://www.blogger.com/profile/13357913929962473153</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8883050.post-109878766542135683</id><published>2004-10-26T03:39:00.000-07:00</published><updated>2004-10-26T03:47:45.420-07:00</updated><title type='text'>First post</title><content type='html'>Hi. Im the programmer on this project.&lt;br /&gt;Hopefully with an online diary i'll be writing more about the progress of the project :)&lt;br /&gt;&lt;br /&gt;Now when period 1  of the project is finished everything feels pretty good and im ready to start period 2 and really dig myself into the graphical part of the programming.&lt;br /&gt;&lt;br /&gt;A short resume of whats been done in period 1.&lt;br /&gt;&lt;br /&gt;I programmed an exporter for Maya 6.0 wich exports&lt;br /&gt;- Geometry data (vertices, triangles, uvs etc)&lt;br /&gt;- Bound skin (all the joints affecting the geometry)&lt;br /&gt;- Animations for the skin (translational and rotational)&lt;br /&gt;- Calculated tangent and binormals for the vertices&lt;br /&gt;&lt;br /&gt;Small testprograms for skinning and animation so i could verify that the exported data is correct.&lt;br /&gt;&lt;br /&gt;Played a little with HLSL and implemented normalmapping and the morph we will use.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8883050-109878766542135683?l=gsceptmorph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gsceptmorph.blogspot.com/feeds/109878766542135683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8883050&amp;postID=109878766542135683' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/109878766542135683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/109878766542135683'/><link rel='alternate' type='text/html' href='http://gsceptmorph.blogspot.com/2004/10/first-post.html' title='First post'/><author><name>Mogwai</name><uri>http://www.blogger.com/profile/13357913929962473153</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8883050.post-109878605867835412</id><published>2004-10-26T03:13:00.000-07:00</published><updated>2004-10-26T03:20:58.676-07:00</updated><title type='text'>Blog created, old diary perhaps gone?</title><content type='html'>Had my old project diary at home. But my computer at home is currently broken so our good friend Simon suggest a blog instead. So here we are.&lt;br /&gt;&lt;br /&gt;Currently I'm working on the low-poly model.&lt;br /&gt;&lt;br /&gt;Me and Fredrik have done a lot of tests to ensure the smoothness of the project. Problem areas  are almost all about normal maps and include: Soft/hard edges, UV-mapping, and ofcourse generation.&lt;br /&gt;&lt;br /&gt; &lt;span style="font-weight: bold;"&gt;Soft/hard edges&lt;/span&gt; is mostly a problem for me. It affects how the normal maps are generated.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;UV-mapping&lt;/span&gt; is limited to be very non-streched and to have as few seams as possible. The seams should have as much the same orientation as possible.&lt;br /&gt;During the&lt;span style="font-weight: bold;"&gt; generation&lt;/span&gt; of normalmaps, I will have to be very considerate and make sure that the correct data is sampled.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;About my sketches:&lt;/span&gt;&lt;br /&gt;I forgot to do a few sketches, but I remember them now. They are not the most important but I aim to do them in the coming weeks.  The most important sketch(fron/back/side views) is finished and I have also used it for my low-poly model.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8883050-109878605867835412?l=gsceptmorph.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gsceptmorph.blogspot.com/feeds/109878605867835412/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8883050&amp;postID=109878605867835412' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/109878605867835412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8883050/posts/default/109878605867835412'/><link rel='alternate' type='text/html' href='http://gsceptmorph.blogspot.com/2004/10/blog-created-old-diary-perhaps-gone.html' title='Blog created, old diary perhaps gone?'/><author><name>Primal_r</name><uri>http://www.blogger.com/profile/02562678289956291669</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='27' src='http://www.oskarholmstrand.com/PICT0315-mini.jpg'/></author><thr:total>0</thr:total></entry></feed>
