<?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-9005631834827240446</id><updated>2012-02-16T14:05:48.260-08:00</updated><title type='text'>COMP 3501 - Fall 2011</title><subtitle type='html'>A place for the course TA to address common problems in terms of lecture material and assignments.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://comp3501-fall2011.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://comp3501-fall2011.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Gail Carmichael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-i5r47EET9Mk/AAAAAAAAAAI/AAAAAAAADQc/bEbY_p9K2gk/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>28</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9005631834827240446.post-7286358052418308270</id><published>2011-12-08T09:32:00.001-08:00</published><updated>2011-12-08T09:36:47.766-08:00</updated><title type='text'>Nominate a Great TA for the SCS TA Excellence Award</title><content type='html'>With the last assignment marked and your projects coming in, I guess this pretty much wraps up our time together this term! It was awesome working with you and I hope I was able to be helpful to you all.&lt;br /&gt;&lt;br /&gt;I wanted to draw your attention to the School of Computer Science's TA Excellence Award.&amp;nbsp; I started this with the admin staff a couple of years ago when I was the TA Mentor, and its success depends very much on you guys making meaningful nominations.&amp;nbsp; In the past, we've had lots of amazing comments from both students and profs so I hope this can continue this year, even though I've moved back into regular TA'ing and someone else has taken over the mentor role!&lt;br /&gt;&lt;br /&gt;So, if you had a TA you really liked this term, or have a great one next term, please do consider nominating him or her.&amp;nbsp; (That includes me, if you happen to think I'm deserving!)&lt;br /&gt;&lt;br /&gt;&lt;span style="background-color: #fff2cc; color: #e06666; font-size: large;"&gt;&lt;b&gt;&lt;a href="http://www6.carleton.ca/tasupport/mentorship-program/computer-science/ta-excellence-award-nomination/"&gt;Nominate a great TA here&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Best of luck on your exams, and hope you have an awesome second term! :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9005631834827240446-7286358052418308270?l=comp3501-fall2011.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://comp3501-fall2011.blogspot.com/feeds/7286358052418308270/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/12/nominate-great-ta-for-scs-ta-excellence.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/7286358052418308270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/7286358052418308270'/><link rel='alternate' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/12/nominate-great-ta-for-scs-ta-excellence.html' title='Nominate a Great TA for the SCS TA Excellence Award'/><author><name>Gail Carmichael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-i5r47EET9Mk/AAAAAAAAAAI/AAAAAAAADQc/bEbY_p9K2gk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9005631834827240446.post-5061759022060921844</id><published>2011-12-08T09:31:00.001-08:00</published><updated>2011-12-08T09:38:59.838-08:00</updated><title type='text'>Assignment 4 Marked</title><content type='html'>Everything should be in WebCT now.&amp;nbsp; Make sure to get back to me about any issues as soon as you can, since my baby is due December 24th and things only get more and more crazy until then. ;)&amp;nbsp; Thanks for your patience in getting this done!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9005631834827240446-5061759022060921844?l=comp3501-fall2011.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://comp3501-fall2011.blogspot.com/feeds/5061759022060921844/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/12/assignment-4-marked.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/5061759022060921844'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/5061759022060921844'/><link rel='alternate' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/12/assignment-4-marked.html' title='Assignment 4 Marked'/><author><name>Gail Carmichael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-i5r47EET9Mk/AAAAAAAAAAI/AAAAAAAADQc/bEbY_p9K2gk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9005631834827240446.post-4495256959269883417</id><published>2011-11-29T07:03:00.001-08:00</published><updated>2011-11-29T07:06:04.488-08:00</updated><title type='text'>Midterm 2 Marking Comments</title><content type='html'>The midterms are marked and the grades are in WebCT. Here are some comments on the way I marked them.&lt;br /&gt;&lt;br /&gt;I must admit I had to go through these more quickly, so if you are unsure of why you lost marks somewhere because I didn't write much, let me know.&amp;nbsp; If you think your answer deserves more marks or that I missed something in determining the correctness of your answer, send an email that demonstrates this.  If indeed I think you deserve more marks, I’ll ask you to bring in your midterm paper. &lt;br /&gt;&lt;br /&gt;Be sure to check my addition! &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Note&lt;/b&gt;: The prof said that as long as you didn’t go over the number of questions allowed for each section I could count all the marks for those questions, even if it takes you over 90. I am hoping this was clear for you during the exam, especially because this wasn't the case for the first one. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Number 1 &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;In 1.1, I want to see specifics, especially what function is applied and what you do with the result of that function (add to the height of vertices).  Being too general gets you 2/5.  If you didn’t mention what the output of the wave function is doing you lost one mark. &lt;br /&gt;&lt;br /&gt;In 1.2, the full formula is:&lt;br /&gt; height = amplitude * sin (wavelength * distanceFromSource + angularFrequency*time + shift)&lt;br /&gt; I am taking off 0.5 each for missing wavelength, angular frequency and shift and 1 for missing the others (amplitude, distance from source, and time).  Same amount for missing or incorrect explanations.  The height/sin part of the equation is worth 1 mark.  If you added any terms that shouldn’t be there, I took off 0.5. &lt;br /&gt;&lt;br /&gt;In 1.3, the idea is to find which source a particular wave is closer to – that will be the distance used to compute the vertex height.  If you correctly did something that added the heights from the two waves together, we are giving marks (12/15). &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Number 2 &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;In 2.2, if you only talked about normals needing a proper transformation when transformations like shear are applied, you got 3/7.  I needed to know what happens and why it matters in more detail (normals won’t be perpendicular, lighting will be wrong, etc). &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Number 4 &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Forgetting to discuss 2-3 operations for the shaders will lose you 2 points each for 4.1 and 4.2. &lt;br /&gt;&lt;br /&gt;Forgetting to state output for 4.1 and 4.2 loses you 1 mark. &lt;br /&gt;&lt;b&gt;&lt;br /&gt;Number 5 &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;In 5.1, half marks are given for a reasonable discussion that shows a misunderstanding of the lighting components. &lt;br /&gt;&lt;br /&gt;In 5.3, if you say that vertex shaders can be used to do bump mapping but don’t say how (as in, where are you going to get info on how to modify normals, such as from a texture), I took off 1 mark. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Number 6 &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;In 6.1, getting the wrong R vector results in two marks lost (especially if I can’t see how you computed it). &lt;br /&gt;&lt;br /&gt;In 6.3, if you forget the surface material value you lose 1 mark, and if you forget the source light you lose 1 mark.  If you don’t normalize V and R you lose 1 mark. &lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9005631834827240446-4495256959269883417?l=comp3501-fall2011.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://comp3501-fall2011.blogspot.com/feeds/4495256959269883417/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/11/midterm-2-marking-comments.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/4495256959269883417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/4495256959269883417'/><link rel='alternate' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/11/midterm-2-marking-comments.html' title='Midterm 2 Marking Comments'/><author><name>Gail Carmichael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-i5r47EET9Mk/AAAAAAAAAAI/AAAAAAAADQc/bEbY_p9K2gk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9005631834827240446.post-540971303208456916</id><published>2011-11-24T10:25:00.001-08:00</published><updated>2011-11-24T10:27:08.842-08:00</updated><title type='text'>Ask Your Questions Today</title><content type='html'>Just a quick note to say that tomorrow, unfortunately, I will be in Toronto last-minute for a family illness and likely won't be able to answer your questions regarding the assignment.&amp;nbsp; So be sure to ask as much as you can today! Also, if enough of you could check WebCT through the day tomorrow, you may be able to help each other in the discussion forums.&lt;br /&gt;&lt;br /&gt;Sorry about this!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9005631834827240446-540971303208456916?l=comp3501-fall2011.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://comp3501-fall2011.blogspot.com/feeds/540971303208456916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/11/ask-your-questions-today.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/540971303208456916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/540971303208456916'/><link rel='alternate' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/11/ask-your-questions-today.html' title='Ask Your Questions Today'/><author><name>Gail Carmichael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-i5r47EET9Mk/AAAAAAAAAAI/AAAAAAAADQc/bEbY_p9K2gk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9005631834827240446.post-7748893586591424258</id><published>2011-11-24T09:06:00.001-08:00</published><updated>2011-11-24T09:10:46.432-08:00</updated><title type='text'>Assignment 4 Clarification</title><content type='html'>I have confirmed a couple of things about the assignment that many of you were wondering about.&amp;nbsp; First of all, before starting task two, you should set the scaling of the earth object to be&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; (1,1,1)&lt;/span&gt; again.&amp;nbsp; Answer all the questions up until 4.2 using this value.&amp;nbsp; Then change it to &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;(0.1, 1, 0.1)&lt;/span&gt;.&amp;nbsp; The question about what issue you observe and how to fix it is directly related to the midterm question on world inverse/tranpose matrix.&amp;nbsp; An answer of "don't scale it that way" is not correct, because of course you might actually &lt;i&gt;want&lt;/i&gt; to scale it that way.&amp;nbsp; Think about what happens with the normals when you scale the sphere and whether they remain perpendicular to the surface.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9005631834827240446-7748893586591424258?l=comp3501-fall2011.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://comp3501-fall2011.blogspot.com/feeds/7748893586591424258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/11/assignment-4-clarification.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/7748893586591424258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/7748893586591424258'/><link rel='alternate' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/11/assignment-4-clarification.html' title='Assignment 4 Clarification'/><author><name>Gail Carmichael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-i5r47EET9Mk/AAAAAAAAAAI/AAAAAAAADQc/bEbY_p9K2gk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9005631834827240446.post-673934914788248059</id><published>2011-11-23T07:53:00.001-08:00</published><updated>2011-11-23T07:56:26.927-08:00</updated><title type='text'>Upcoming Grading Plans</title><content type='html'>&lt;b&gt;Assignment 4&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;My first task is to actually do the assignment so that I can better answer some of your questions before it's due.&amp;nbsp; This will also make it easier to mark the midterm (and of course the assignment itself).&amp;nbsp; I am still waiting for confirmation about some of the issues you brought up regarding the assignment questions, and when I know more I will post here.&lt;br /&gt;&lt;br /&gt;I will be grading the assignment after the midterms, so you probably won't see your mark back for these until the first full week of December or so. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Midterm&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The plan is to have the grades up on WebCT by the end of the day Tuesday November 29, which should be in time to decide to drop the course if needed.&amp;nbsp; Depending on exactly when I finish, you might get the papers back in class Tuesday, or Thursday at the latest.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9005631834827240446-673934914788248059?l=comp3501-fall2011.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://comp3501-fall2011.blogspot.com/feeds/673934914788248059/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/11/upcoming-grading-plans.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/673934914788248059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/673934914788248059'/><link rel='alternate' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/11/upcoming-grading-plans.html' title='Upcoming Grading Plans'/><author><name>Gail Carmichael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-i5r47EET9Mk/AAAAAAAAAAI/AAAAAAAADQc/bEbY_p9K2gk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9005631834827240446.post-2468140425788884304</id><published>2011-11-16T09:46:00.001-08:00</published><updated>2011-11-16T09:48:13.882-08:00</updated><title type='text'>The Best Midterm Tip I Can Give...</title><content type='html'>...is to work on Assignment 4.&amp;nbsp; Trying to understand all the pieces and at least starting to code them will be invaluable.&lt;br /&gt;&lt;br /&gt;Also be sure to have a good understanding of all the questions given as samples on the course webpage.&lt;br /&gt;&lt;br /&gt;Remember, if you have any questions about any of these things, please ask sooner rather than later so I'll have time to give you a decent answer!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9005631834827240446-2468140425788884304?l=comp3501-fall2011.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://comp3501-fall2011.blogspot.com/feeds/2468140425788884304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/11/best-midterm-tip-i-can-give.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/2468140425788884304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/2468140425788884304'/><link rel='alternate' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/11/best-midterm-tip-i-can-give.html' title='The Best Midterm Tip I Can Give...'/><author><name>Gail Carmichael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-i5r47EET9Mk/AAAAAAAAAAI/AAAAAAAADQc/bEbY_p9K2gk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9005631834827240446.post-3632052690172308634</id><published>2011-11-13T18:38:00.001-08:00</published><updated>2011-11-13T18:40:57.683-08:00</updated><title type='text'>Clarification from Tutorial</title><content type='html'>During our informal tutorial, I pointed out that a position (&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;VPOS&lt;/span&gt;) was indeed available to be passed in to a pixel shader.&amp;nbsp; However, it is not the vertex's position as I may have said or implied, but rather the pixel's position on the screen.&amp;nbsp; If you wanted to know where that pixel would have been in the 3D world, you would indeed need to "cheat" by passing the information in some other way (possibly using texture coordinates, as the prof was suggesting).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9005631834827240446-3632052690172308634?l=comp3501-fall2011.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://comp3501-fall2011.blogspot.com/feeds/3632052690172308634/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/11/clarification-from-tutorial.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/3632052690172308634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/3632052690172308634'/><link rel='alternate' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/11/clarification-from-tutorial.html' title='Clarification from Tutorial'/><author><name>Gail Carmichael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-i5r47EET9Mk/AAAAAAAAAAI/AAAAAAAADQc/bEbY_p9K2gk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9005631834827240446.post-5451434824418305271</id><published>2011-11-10T08:01:00.000-08:00</published><updated>2011-11-10T08:01:14.641-08:00</updated><title type='text'>Give Your TA Feedback</title><content type='html'>A few TA's in SCS (myself included) are participating in voluntary feedback through the TA Mentorship program.&amp;nbsp; The idea is to collect your thoughts on how we're doing both so we can improve and so we can have a record of our performance.&lt;br /&gt;&lt;br /&gt;You can leave feedback on the participating TA's with this &lt;a href="http://www6.carleton.ca/tasupport/mentorship-program/computer-science/computer-science-ta-feedback-form/"&gt;convenient online form&lt;/a&gt;.&amp;nbsp; I'd love to get your feedback about me. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9005631834827240446-5451434824418305271?l=comp3501-fall2011.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://comp3501-fall2011.blogspot.com/feeds/5451434824418305271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/11/give-your-ta-feedback.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/5451434824418305271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/5451434824418305271'/><link rel='alternate' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/11/give-your-ta-feedback.html' title='Give Your TA Feedback'/><author><name>Gail Carmichael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-i5r47EET9Mk/AAAAAAAAAAI/AAAAAAAADQc/bEbY_p9K2gk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9005631834827240446.post-5791305921182132673</id><published>2011-11-09T06:55:00.000-08:00</published><updated>2011-11-09T06:55:53.219-08:00</updated><title type='text'>Informal Tutorial Update 2</title><content type='html'>Room has been booked! Our informal tutorial will take place here:&lt;br /&gt;&lt;br /&gt;HP 4325&lt;br /&gt;12:00pm - 1:00pm&lt;br /&gt;Thursday, November 10, 2011&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9005631834827240446-5791305921182132673?l=comp3501-fall2011.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://comp3501-fall2011.blogspot.com/feeds/5791305921182132673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/11/informal-tutorial-update-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/5791305921182132673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/5791305921182132673'/><link rel='alternate' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/11/informal-tutorial-update-2.html' title='Informal Tutorial Update 2'/><author><name>Gail Carmichael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-i5r47EET9Mk/AAAAAAAAAAI/AAAAAAAADQc/bEbY_p9K2gk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9005631834827240446.post-4516869048969530729</id><published>2011-11-08T19:11:00.000-08:00</published><updated>2011-11-08T19:11:36.096-08:00</updated><title type='text'>Informal Tutorial Update 1</title><content type='html'>Hey all, I'm working on getting a room booked for our informal tutorial.&amp;nbsp; So far Thursday this week is the best day for most people, but our SCS seminar room is taken, so I'm trying for a nice room in the Math department.&amp;nbsp; If I can't find anything, I might try for something on the following Monday.&amp;nbsp; Watch this space and I'll update with a new post as soon as I know more.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9005631834827240446-4516869048969530729?l=comp3501-fall2011.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://comp3501-fall2011.blogspot.com/feeds/4516869048969530729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/11/informal-tutorial-update-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/4516869048969530729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/4516869048969530729'/><link rel='alternate' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/11/informal-tutorial-update-1.html' title='Informal Tutorial Update 1'/><author><name>Gail Carmichael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-i5r47EET9Mk/AAAAAAAAAAI/AAAAAAAADQc/bEbY_p9K2gk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9005631834827240446.post-1180803006243983014</id><published>2011-11-03T12:02:00.000-07:00</published><updated>2011-11-03T12:02:47.262-07:00</updated><title type='text'>Informal Tutorial: Help Pick a Time</title><content type='html'>Fill in this poll if you are interested in an informal tutorial to help you prepare for the second midterm:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.doodle.com/pvy7tn9zn225fnmp"&gt;http://www.doodle.com/pvy7tn9zn225fnmp&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Please only fill in the days you &lt;i&gt;know&lt;/i&gt; you will be able to attend.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9005631834827240446-1180803006243983014?l=comp3501-fall2011.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://comp3501-fall2011.blogspot.com/feeds/1180803006243983014/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/11/informal-tutorial-help-pick-time.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/1180803006243983014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/1180803006243983014'/><link rel='alternate' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/11/informal-tutorial-help-pick-time.html' title='Informal Tutorial: Help Pick a Time'/><author><name>Gail Carmichael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-i5r47EET9Mk/AAAAAAAAAAI/AAAAAAAADQc/bEbY_p9K2gk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9005631834827240446.post-5956683527015683852</id><published>2011-11-03T11:57:00.000-07:00</published><updated>2011-11-03T11:57:59.841-07:00</updated><title type='text'>Assignment 3 Marked</title><content type='html'>The third assignment is now marked and on WebCT.&amp;nbsp; Overall, most of those who attempted it did well.&amp;nbsp; A few general comments:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;There were a few assignments that looked suspiciously similar.&amp;nbsp; It might have been a coincidence (and it might have carried over from the previous assignment, and I just didn't notice it then).&amp;nbsp; But just in case it is not, please be more careful in the future.&amp;nbsp; Your best bet is to make a note of who you worked with on an assignment when you submit if you did indeed work together.&lt;br /&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;There are still some basic code-related issues (so I made sure there were some marks for that).&amp;nbsp; For instance, I want to continue to get you to use good practices like making your class members protected or private, not using the 'this' pointer to access your members unnecessarily, and avoiding magic numbers.&lt;br /&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Please remember to clear all your warnings before submitting!&lt;br /&gt;&amp;nbsp;&lt;/b&gt;&lt;/li&gt;&lt;li&gt;And check whether you check your project file for &lt;a href="http://comp3501-fall2011.blogspot.com/2011/10/vs2010-project-for-assignment-2.html"&gt;this stuff&lt;/a&gt; before submitting.&amp;nbsp; You don't want to make your TA do more work than she has to before she even starts grading. ;)&amp;nbsp; I'll take marks off in the future if I have to modify it for you.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9005631834827240446-5956683527015683852?l=comp3501-fall2011.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://comp3501-fall2011.blogspot.com/feeds/5956683527015683852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/11/assignment-3-marked.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/5956683527015683852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/5956683527015683852'/><link rel='alternate' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/11/assignment-3-marked.html' title='Assignment 3 Marked'/><author><name>Gail Carmichael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-i5r47EET9Mk/AAAAAAAAAAI/AAAAAAAADQc/bEbY_p9K2gk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9005631834827240446.post-6543482470383994305</id><published>2011-11-03T09:49:00.000-07:00</published><updated>2011-11-03T09:49:32.970-07:00</updated><title type='text'>Two-Kings DirectX Tutorials</title><content type='html'>A student mentioned using this site for their texture tutorial, and since it looks useful I figured I'd share:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.two-kings.de/"&gt;http://www.two-kings.de/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you have any great DirectX resource websites, comment here or send them to me so I can share with everyone else as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9005631834827240446-6543482470383994305?l=comp3501-fall2011.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://comp3501-fall2011.blogspot.com/feeds/6543482470383994305/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/11/two-kings-directx-tutorials.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/6543482470383994305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/6543482470383994305'/><link rel='alternate' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/11/two-kings-directx-tutorials.html' title='Two-Kings DirectX Tutorials'/><author><name>Gail Carmichael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-i5r47EET9Mk/AAAAAAAAAAI/AAAAAAAADQc/bEbY_p9K2gk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9005631834827240446.post-3724611154947596351</id><published>2011-10-27T10:18:00.000-07:00</published><updated>2011-10-27T10:18:13.567-07:00</updated><title type='text'>Diffuse, Ambient, and Specular Lighting</title><content type='html'>I have another applet I wrote a while back that might be useful to you.  It demonstrates the various kinds of lighting and can really help you understand what's happening behind the equations.&lt;span style="font-size: large;"&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In class you learned about diffuse, ambient, and specular lighting.&amp;nbsp; Diffuse lighting comes from a direct light source like the sun, while ambient lighting is just what's hanging around in the environment.&amp;nbsp; Highlights on a surface from the direct light source appear as specular highlights and depend on where your eye is positioned relative to the surface.&lt;br /&gt;&lt;br /&gt;In my applet, you can adjust the intensities of the red, green, and blue light coming from the ambient and direct light sources.&amp;nbsp; You can also adjust the surface reflectance, which determines how much of a certain colour of light will be reflected back from the surface (and eventually reach your eye, making the material look like a certain colour).&amp;nbsp; If the surface does not reflect any blue, then changing the blue intensity on the lights won't affect anything (the only exception being for the specular highlight, since those are made before the light would be absorbed/reflected in the surface anyway).&lt;br /&gt;&lt;br /&gt;You can move the sun (direct light source) and the eye (viewpoint/camera centre), and you can tilt the surface to see how the angle between its normal and the other directions changes the outcome.&lt;br /&gt;&lt;br /&gt;I recommend trying to isolate each type of light first to see how they look.&amp;nbsp; Turn the specular highlight off at first as well.&amp;nbsp; Then try to compare what you see with the equations involved in defining the light sources.&lt;br /&gt;&lt;br /&gt;As always, if you have any questions, comment here or email me!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://gailcarmichael.com/processing/learngraphics2/"&gt;&lt;/a&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;a href="http://gailcarmichael.com/processing/learngraphics2/"&gt;Go to the applet now...&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9005631834827240446-3724611154947596351?l=comp3501-fall2011.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://comp3501-fall2011.blogspot.com/feeds/3724611154947596351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/10/diffuse-ambient-and-specular-lighting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/3724611154947596351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/3724611154947596351'/><link rel='alternate' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/10/diffuse-ambient-and-specular-lighting.html' title='Diffuse, Ambient, and Specular Lighting'/><author><name>Gail Carmichael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-i5r47EET9Mk/AAAAAAAAAAI/AAAAAAAADQc/bEbY_p9K2gk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9005631834827240446.post-9199844224713529741</id><published>2011-10-26T15:47:00.000-07:00</published><updated>2011-10-26T15:47:36.874-07:00</updated><title type='text'>Midterm Comments</title><content type='html'>Here are some general comments about the more problematic questions.  I sometimes referred to these comments on your midterm paper.&lt;br /&gt;&lt;br /&gt;These notes assume that you have access to the prof’s answer key.  If you answered more questions than those that would give you 100 possible points, I stopped after 100 possible points as per the instructions on the midterm booklet.  (In the future, if there are certain questions you don’t want marked, write “do not mark” on them and I will skip them.)&lt;br /&gt;&lt;ol&gt;&lt;li&gt;In Number 8, some said that flickering could be caused by objects that occupy the same space, and that you could fix this by always choosing just one of the objects to render.  If both objects were being rendered because they are the same distance away, then you wouldn’t have the flickering.  If they were alternating being rendered then choosing just one object wouldn’t fix the problem unless you had a way to always choose the same one (but how would you ensure that?).  Suggesting that you change the z-value of one of the objects is a bit more reasonable, but I’m not convinced it’s a great solution since you might have to go in and change your model and because inaccuracies could still be an issue.  The answer that was being looked for was that the flickering is caused by inaccuracies of the z-buffer, so to fix it you want to increase the buffer’s resolution.&lt;br /&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;In Number 1, if you draw a diagram that shows the overall idea but not the defining parameters (or if you label angles and such but don’t say what they are for), you will get 1 mark.  If the defining parameters are more related to what I showed in my lecture, that’s fine, but I want to know more detail.  Also, a few people were getting concepts mixed up between the geometry of the viewing plane (pinhole camera model for instance) versus the actual viewing frustum.  We want to know about the frustum here, but I tried to give some marks for the perspective projection diagrams as well so long as you didn’t mix things up too much.&lt;br /&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&amp;nbsp;In Number 10, a good description of what the center and position points are comes from the Toymaker website (that place just keeps popping up in my Google searches!).   It’s not clear to me whether the description in the answer key is also correct (can’t tell in the API, don’t now from experience), but it’s certainly possible and it does appear in the notes.  (It seems to not make sense to have to update the position any time you want to change the center of rotation, leading me to believe that these are unrelated to each other, but I’ll go by what’s in the notes.)&lt;br /&gt;&lt;br /&gt;Center: “pointer to a 3D vector specifying the position in the sprite around which it can be rotated or NULL for top left”&lt;br /&gt;&lt;br /&gt;Position (aka translation): “pointer to a 3D vector defining the screen position of the sprite. Note: in Direct3D 0,0 is the top left of the screen” &lt;br /&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;In Number 1, if you talk about implications related to the perspective transform itself rather than the frustum, I accepted that, so long as that made sense in the context of your previous answers.&lt;br /&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;In Number 7 if you talked about giving the system incorrect drawing instructions (e.g. triangle set vs. triangle fan), I accepted that.&lt;br /&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;There seemed to be a fair number of issues with Number 4.  First of all, when given actual points in the question, you should make sure to use them in the answer.  In other words, be mathematically specific.  Also, there seems to be some misunderstandings in how to actually compare the normal to the view point to see if they can “see” each other.  The trick is to use the fact that the sign of the dot product of the two entities can tell you something about the angle between them, and thus whether they are pointing away from each other or not.&lt;br /&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;In Number 3, remember that if you are putting your point first (to the left of the transformation matrices) that it would be a row vector, not a column vector, in order to get the correct matrix multiplication happening.&lt;br /&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;The biggest problems in Number 4 were either not giving enough detail (how do you actually compute certain things, etc) or just plain old having the method wrong.  Be sure to review the answer for this one carefully, and keep in mind for the future that a question worth 25 marks is going to warrant some specific detail (in this case, including the mathematics behind it). &lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9005631834827240446-9199844224713529741?l=comp3501-fall2011.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://comp3501-fall2011.blogspot.com/feeds/9199844224713529741/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/10/midterm-comments.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/9199844224713529741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/9199844224713529741'/><link rel='alternate' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/10/midterm-comments.html' title='Midterm Comments'/><author><name>Gail Carmichael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-i5r47EET9Mk/AAAAAAAAAAI/AAAAAAAADQc/bEbY_p9K2gk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9005631834827240446.post-7145631134419974653</id><published>2011-10-26T15:43:00.000-07:00</published><updated>2011-10-26T15:43:15.288-07:00</updated><title type='text'>Midterm Marking Scheme</title><content type='html'>I've marked the midterms and posted the grades on WebCT.  Hopefully you will receive your papers back in class tomorrow (Oct 27).&lt;br /&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;Here is how I broke down the marks for most questions (someof the 5 mark questions aren’t listed because they are more straightforward).&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;If you think your answer deserves more marks or that Imissed something in determining the correctness of your answer, send an emailthat demonstrates this.&amp;nbsp; If indeed Ithink you deserve more marks, I’ll ask you to bring in your midterm paper.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Be sure to check my addition!&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Number 1&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l5 level1 lfo2; text-indent: -.25in;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;2 for the projection role&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l5 level1 lfo2; text-indent: -.25in;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;2.5 for the defining parameters (0.5 each)&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l5 level1 lfo2; text-indent: -.25in;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;2.5 for the diagram&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l5 level1 lfo2; text-indent: -.25in;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;1 for what defining parameters form&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="mso-list: l5 level1 lfo2; text-indent: -.25in;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;2 for implication on visualizing game objects&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="text-indent: -0.25in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Number 2&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l4 level1 lfo3; text-indent: -.25in;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;4 for explaining what homogeneous coordinatesare&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 1.0in; mso-add-space: auto; mso-list: l4 level2 lfo3; text-indent: -.25in;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;o&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;3 if correct but not quite enough detail&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l4 level1 lfo3; text-indent: -.25in;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;4 for explaining the motivation for them&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l4 level1 lfo3; text-indent: -.25in;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;2 for giving example of where they are used&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="margin-left: 1.0in; mso-add-space: auto; mso-list: l4 level2 lfo3; text-indent: -.25in;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;o&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;1 if you give a correct example but offer anincorrect reason&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Number 3&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l2 level1 lfo4; text-indent: -.25in;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;For general matrices, 1.5 each for the twotranslation matrices and 2 for the rotation&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="mso-list: l2 level1 lfo4; text-indent: -.25in;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;5 marks for the second part: 1 mark for each offour matrices (including the point) and 1 one mark for the correct order&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="text-indent: -0.25in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Number 4&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l3 level1 lfo5; text-indent: -.25in;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;15 for describing the steps properly&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 1.0in; mso-add-space: auto; mso-list: l3 level2 lfo5; text-indent: -.25in;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;o&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;4 for defining two vectors using the trianglepoints&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 1.0in; mso-add-space: auto; mso-list: l3 level2 lfo5; text-indent: -.25in;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;o&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;3 for finding the normal via the cross productof these two vectors&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 1.0in; mso-add-space: auto; mso-list: l3 level2 lfo5; text-indent: -.25in;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;o&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;4 for defining a vector from the triangle to theviewpoint&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 1.0in; mso-add-space: auto; mso-list: l3 level2 lfo5; text-indent: -.25in;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;o&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;4 for computing the cosine of the angle betweennormal and vector to the viewpoint (only the sign matters)&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l3 level1 lfo5; text-indent: -.25in;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;5 for drawing an accurate picture&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 1.0in; mso-add-space: auto; mso-list: l3 level2 lfo5; text-indent: -.25in;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;o&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;2.5 if the overall idea is there but it does notgeneralize well and/or does not show U, V, W, P, or other parts of thecomputation in the first part&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 1.0in; mso-add-space: auto; mso-list: l3 level2 lfo5; text-indent: -.25in;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;o&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;2 if the diagram is good but based on wrongmethod&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="mso-list: l3 level1 lfo5; text-indent: -.25in;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;5 for correctly computing whether T is visiblefrom P&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="text-indent: -0.25in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Number 5&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l1 level1 lfo6; text-indent: -.25in;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;5 for saying why the transformation computesZ-values&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 1.0in; mso-add-space: auto; mso-list: l1 level2 lfo6; text-indent: -.25in;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;o&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;1 if you mention removing shapes outside viewfrustum (this will happen before the projection transformation)&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l1 level1 lfo6; text-indent: -.25in;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;10 for correct computation&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 1.0in; mso-add-space: auto; mso-list: l1 level2 lfo6; text-indent: -.25in;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;o&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;7 if correct but not enough math shown to showfull understanding&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 1.0in; mso-add-space: auto; mso-list: l1 level2 lfo6; text-indent: -.25in;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;o&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;9 if there’s a small error&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="margin-left: 1.0in; mso-add-space: auto; mso-list: l1 level2 lfo6; text-indent: -.25in;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;o&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;7 if you don’t properly multiply the homogeneouscoordinate of the point with the value in position (4,3) in the matrix to endup getting zero in the result&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Number 6&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo7; text-indent: -.25in;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;5 for computing orientation&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo7; text-indent: -.25in;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;7 for computing avatar position&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 1.0in; mso-add-space: auto; mso-list: l0 level2 lfo7; text-indent: -.25in;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;o&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;5 if you don’t show enough math&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 1.0in; mso-add-space: auto; mso-list: l0 level2 lfo7; text-indent: -.25in;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;o&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;4 if you don’t normalize the orientation vectorand multiply that by 50 units&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo7; text-indent: -.25in;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;8 for&amp;nbsp;avatar’s position and orientation&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 1.0in; mso-add-space: auto; mso-list: l0 level2 lfo7; text-indent: -.25in;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;o&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;7 if you did not do the math and/or there aresmall errors&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="margin-left: 1.0in; mso-add-space: auto; mso-list: l0 level2 lfo7; text-indent: -.25in;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;o&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;4 if the method is wrong&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Number 8&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l6 level1 lfo1; text-indent: -.25in;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;2.5/5 for saying the objects occupy the samespace and to pick just one (without saying how)&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="mso-list: l6 level1 lfo1; text-indent: -.25in;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;3.5/5 for saying the objects occupy the samespace and to change their z-value&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="text-indent: -0.25in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Number 9&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoListParagraph" style="mso-list: l6 level1 lfo1; text-indent: -.25in;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;3/5 for saying the object is outside the “renderdistance”&lt;/div&gt;&lt;div class="MsoListParagraph" style="text-indent: -0.25in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Number 10&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l6 level1 lfo1; text-indent: -.25in;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;3 for explaining the purpose&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="mso-list: l6 level1 lfo1; text-indent: -.25in;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;2 for the example&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="margin-left: 1.0in; mso-add-space: auto; mso-list: l6 level2 lfo1; text-indent: -.25in;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;;"&gt;o&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;1.5 if example is good but based on incorrectunderstanding of part 1&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9005631834827240446-7145631134419974653?l=comp3501-fall2011.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://comp3501-fall2011.blogspot.com/feeds/7145631134419974653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/10/midterm-marking-scheme.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/7145631134419974653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/7145631134419974653'/><link rel='alternate' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/10/midterm-marking-scheme.html' title='Midterm Marking Scheme'/><author><name>Gail Carmichael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-i5r47EET9Mk/AAAAAAAAAAI/AAAAAAAADQc/bEbY_p9K2gk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9005631834827240446.post-7114777826374413046</id><published>2011-10-21T13:35:00.000-07:00</published><updated>2011-10-21T13:35:57.151-07:00</updated><title type='text'>Assignment 2 Marked</title><content type='html'>Tried really hard to get it marked by yesterday so you'd have more time to take into account any useful feedback for Assignment 3, but I just couldn't make it happen.&amp;nbsp; It's done now, and just like last time, you will find a PDF attached with the marking scheme and my comments to you.&lt;br /&gt;&lt;br /&gt;I will be marking the midterm next, so I won't get to the third assignment for a while.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9005631834827240446-7114777826374413046?l=comp3501-fall2011.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://comp3501-fall2011.blogspot.com/feeds/7114777826374413046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/10/assignment-2-marked.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/7114777826374413046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/7114777826374413046'/><link rel='alternate' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/10/assignment-2-marked.html' title='Assignment 2 Marked'/><author><name>Gail Carmichael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-i5r47EET9Mk/AAAAAAAAAAI/AAAAAAAADQc/bEbY_p9K2gk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9005631834827240446.post-2596273245827155381</id><published>2011-10-19T15:27:00.000-07:00</published><updated>2011-10-19T15:27:48.743-07:00</updated><title type='text'>DirectX Matrices Related to Viewing</title><content type='html'>&lt;i&gt;I promised a while back to write a post that related the theory in the &lt;a href="http://people.scs.carleton.ca/%7Enussbaum/courses/COMP3501/notes/camera_1.pdf"&gt;lecture&lt;/a&gt; that I did a while back on viewing/cameras/projection in DirectX, but alas I haven't had the chance until now.  Though it's perhaps a bit late, hopefully this can serve as another point of view for understanding things, or act as a reference.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;The Toymaker website I mentioned in an earlier post has a &lt;a href="http://www.toymaker.info/Games/html/matrices.html"&gt;good page on the various matrices&lt;/a&gt; you need in Direct3D to go from your model to the screen.&amp;nbsp; Let's have a look at the descriptions there and see how it relates to the terminology and concepts from my lecture.&lt;br /&gt;&lt;br /&gt;&lt;div style="border-style: dashed; border-width: 1px; padding: 10px;"&gt;&lt;b&gt;Note&lt;/b&gt;: DirectX assumes a horizontal/row vector that is multiplied on the left hand side of the transformation matrices.&amp;nbsp; This means that the transformations are applied from left to right.&amp;nbsp; In linear algebra class and in my notes, a vertical/column vector is multiplied on the right hand side so that transformations are actually applied right to left.&amp;nbsp; I'm not going to switch things around from my lecture here, so keep this discrepancy in mind when looking at the Toymaker site in more detail.&lt;/div&gt;&lt;br /&gt;Toymaker lists the following three matrices used to transform your game content from 3D model space to 2D screen space:&lt;br /&gt;&lt;blockquote&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;World Matrix&lt;/b&gt; - Transforms 3D data from Model Space into World Space. You need to set this before rendering every entity in your world.&lt;/li&gt;&lt;li&gt;&lt;b&gt;View Matrix -&lt;/b&gt; Transforms from World Space into View Space. You need to set this each time your camera changes position&lt;/li&gt;&lt;li&gt;&lt;b&gt;Projection Matrix&lt;/b&gt; - Transforms from View Space into Screen Space. You normally set this just once during initialization.&lt;/li&gt;&lt;/ol&gt;&lt;/blockquote&gt;The projection matrix mentioned here is like M&lt;sub&gt;o&lt;/sub&gt;M&lt;sub&gt;p&lt;/sub&gt; from my slides (i.e. the combination of the orthographic projection, which included the windowing transform, and the projection transform that squished the view frustum into a rectangular prism).&lt;br /&gt;&lt;br /&gt;The view matrix here is the same as the view matrix M&lt;sub&gt;v&lt;/sub&gt; in my slides, which essentially did a coordinate transform so the model points in world coordinates would instead become relative to the camera's coordinate system. &lt;br /&gt;&lt;br /&gt;The world matrix isn't something I talked about explicitly in the slides.&amp;nbsp; If you look at the orthographic viewing volume or the view frustum, you can imagine that the model points inside are going to be in the coordinate system of the world or camera (depending which stage you are looking at).&amp;nbsp; Of course, if our models are defined according to their own coordinate systems, then their points would first have to be transformed to be relative to the world coordinate system.&lt;br /&gt;&lt;br /&gt;Toymaker goes on to show the nice helper functions that DirectX has to help you set up these three matrices.&amp;nbsp; You don't even have to know how these matrices look.&lt;br /&gt;&lt;br /&gt;For the view matrix, you can use the same entities we defined in the slides to define where the camera is.&amp;nbsp; Then DirectX will construct the viewing matrix for you.&amp;nbsp; As described on Toymaker:&lt;br /&gt;&lt;blockquote&gt;&lt;div class="Code2" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;D3DXMatrixLookAtLH(D3DXMATRIX *out, CONST D3DXVECTOR3 *eye, CONST D3DXVECTOR3 *at, CONST D3DXVECTOR3 *up );&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Code"&gt;out&lt;/span&gt; - this is where we pass in the address of the matrix we want filling&lt;/li&gt;&lt;li&gt;&lt;span class="Code"&gt;eye&lt;/span&gt; - the world position of the eye point&lt;/li&gt;&lt;li&gt;&lt;span class="Code"&gt;at&lt;/span&gt; - the position in the world we are looking at&lt;/li&gt;&lt;li&gt;&lt;span class="Code"&gt;up&lt;/span&gt; - defines which way is up. This is needed because if you are positioned somewhere in the world looking in a certain direction you could be upright or standing on your head and in each case the position and direction would still be the same. So to determine which way up we are we need to provide it here&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;So the 'eye' here is the eye position/camera center &lt;b&gt;e&lt;/b&gt; in the slides, 'at' here is the gaze direction &lt;b&gt;g&lt;/b&gt; in the slides, and 'up' here is the view-up vector &lt;b&gt;t&lt;/b&gt; in the slides.&lt;br /&gt;&lt;br /&gt;Notice that the projection matrix is defined on Toymaker a bit differently than we define it (in addition to the fact that the DirectX projection matrix takes you from the world to the screen in one fell swoop).&amp;nbsp; While we talked about the view frustum as a set of planes, they use the field of view, aspect, and near and far planes instead.&amp;nbsp; Either way is fine because there is enough information to move from one representation to the other - for instance, the field of view can be determined at the angle between the lines from the origin to the edges of the frustum's side planes.&lt;br /&gt;&lt;br /&gt;That should basically cover it.&amp;nbsp; You can take a look at the &lt;a href="http://www.toymaker.info/Games/html/camera.html"&gt;Toymaker page on cameras&lt;/a&gt; as well to see some methods they use to define the view matrix.&amp;nbsp; I encourage you to try to relate what you see there to what's in the slides to get a good feel for how well you understand the concepts.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9005631834827240446-2596273245827155381?l=comp3501-fall2011.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://comp3501-fall2011.blogspot.com/feeds/2596273245827155381/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/10/directx-matrices-related-to-viewing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/2596273245827155381'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/2596273245827155381'/><link rel='alternate' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/10/directx-matrices-related-to-viewing.html' title='DirectX Matrices Related to Viewing'/><author><name>Gail Carmichael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-i5r47EET9Mk/AAAAAAAAAAI/AAAAAAAADQc/bEbY_p9K2gk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9005631834827240446.post-7489246743732999222</id><published>2011-10-11T10:27:00.000-07:00</published><updated>2011-10-19T15:30:00.979-07:00</updated><title type='text'>Comments on Assignment 1</title><content type='html'>Overall, the first assignment was quite well done.&amp;nbsp; There were a few reoccurring issues that I figured I'd point out here so that everyone can avoid these (mostly minor) problems in the future:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Be sure to remove all warnings before submitting your assignment.&amp;nbsp; I did not take marks off for this, but it's very good practice to fix your warnings.&amp;nbsp; Even though most may be harmless, they can make you not notice more serious warnings.&amp;nbsp; I have seen even professional developers get into trouble when they let their warnings slide in large projects.&lt;br /&gt;&amp;nbsp; &lt;/li&gt;&lt;li&gt;Try to organize your code in a nice, object-oriented way.&amp;nbsp; Don't just add code to the main game class that was provided without thinking about whether that makes sense.&amp;nbsp; Instead, decide what concepts should be their own objects and how these objects should interact.&amp;nbsp; This will be especially important for your project since you'll inevitably have more code than on the shorter assignments.&lt;br /&gt;&amp;nbsp; &lt;/li&gt;&lt;li&gt;A lot of you used &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;int&lt;/span&gt; to define things like the colour of your block.&amp;nbsp; Though this does work, I want to encourage you all to use enumerations in cases like these.&amp;nbsp; There is some good discussion as to why to favour this approach on &lt;a href="http://stackoverflow.com/questions/899917/why-do-people-use-enums-in-c-as-constants-while-they-can-use-const"&gt;this Stack Overflow discussion&lt;/a&gt;.&amp;nbsp; Again, from my own experience, I can say that using &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;enum&lt;/span&gt; has proven to be rather useful.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li&gt;Avoid using magic numbers.&amp;nbsp; A fair number of you used literal numbers to both define the size of your game grid and to loop through its elements.&amp;nbsp; In one case, these numbers didn't even agree.&amp;nbsp; You can use a &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;#DEFINE&lt;/span&gt; for your numbers, or even better, use &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;const&lt;/span&gt; variables.&amp;nbsp; If you group all your defines together in your header file, you also have a one-stop shop for adjusting values in your game.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li&gt;Be careful with your user interface.&amp;nbsp; Why leave the window the size used for the demo when you are only using a fraction of it for your game? Even worse is if you don't show the bounds of the actual playing area.&amp;nbsp; How is the player to know where their blocks can go when there's an invisible wall? In each assignment think about how to help your user better know what's going on.&amp;nbsp; This and feedback are important elements of game design.&lt;/li&gt;&lt;/ul&gt;I think that's it for now.&amp;nbsp; If there was something specific I commented about on your assignment that you'd like to know more about, just send me an email.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9005631834827240446-7489246743732999222?l=comp3501-fall2011.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://comp3501-fall2011.blogspot.com/feeds/7489246743732999222/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/10/comments-on-assignment-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/7489246743732999222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/7489246743732999222'/><link rel='alternate' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/10/comments-on-assignment-1.html' title='Comments on Assignment 1'/><author><name>Gail Carmichael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-i5r47EET9Mk/AAAAAAAAAAI/AAAAAAAADQc/bEbY_p9K2gk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9005631834827240446.post-440886334844371693</id><published>2011-10-11T10:12:00.000-07:00</published><updated>2011-10-11T10:12:46.745-07:00</updated><title type='text'>VS2010 Project for Assignment 2</title><content type='html'>In the announcements section of WebCT I uploaded a Visual Studio 2010 project for those who need it.&amp;nbsp; There are a couple of changes I made to the Project Properties  that should be useful to you in the future (if you make these changes directly, you should be able to do the conversion yourself from now on):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Go to C/C++ &amp;gt; General  and paste the following into Additional Include Directories:&lt;br /&gt; $(DXSDK_DIR)Include;%(AdditionalIncludeDirectories)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Go to Linker &amp;gt; General and paste the following into Additional Library Directories:&lt;br /&gt; $(DXSDK_DIR)Lib\x86;$(DXSDK_DIR)Lib\x64;%(AdditionalLibraryDirectories)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Go to Linker &amp;gt; Input and under Additional Dependencies, remove the d3dxerr9.lib file (we don't appear to actually need it) &lt;/li&gt;&lt;/ul&gt;Before submitting your assignment, be sure to remove all warnings (I didn't do that with the sample project). &lt;br /&gt;&lt;ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9005631834827240446-440886334844371693?l=comp3501-fall2011.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://comp3501-fall2011.blogspot.com/feeds/440886334844371693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/10/vs2010-project-for-assignment-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/440886334844371693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/440886334844371693'/><link rel='alternate' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/10/vs2010-project-for-assignment-2.html' title='VS2010 Project for Assignment 2'/><author><name>Gail Carmichael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-i5r47EET9Mk/AAAAAAAAAAI/AAAAAAAADQc/bEbY_p9K2gk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9005631834827240446.post-79419666727706591</id><published>2011-10-07T15:29:00.000-07:00</published><updated>2011-10-07T15:29:59.209-07:00</updated><title type='text'>Assignment 1 Graded</title><content type='html'>You'll find a PDF attached to your assignment submission in WebCT.&amp;nbsp; I tried to put as many useful general comments as I could find time to write.&amp;nbsp; (I probably won't be able to spend as much time doing that on future assignments, unfortunately!)&lt;br /&gt;&lt;br /&gt;Overall the assignment was well done.&amp;nbsp; I'll try to post some general comments here early next week, along with the promised relationship between my viewing lecture and relevant DirectX functions.&lt;br /&gt;&lt;br /&gt;Have a great Thanksgiving weekend!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9005631834827240446-79419666727706591?l=comp3501-fall2011.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://comp3501-fall2011.blogspot.com/feeds/79419666727706591/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/10/assignment-1-graded.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/79419666727706591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/79419666727706591'/><link rel='alternate' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/10/assignment-1-graded.html' title='Assignment 1 Graded'/><author><name>Gail Carmichael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-i5r47EET9Mk/AAAAAAAAAAI/AAAAAAAADQc/bEbY_p9K2gk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9005631834827240446.post-6657322114538481742</id><published>2011-10-05T12:06:00.000-07:00</published><updated>2011-10-05T12:06:47.381-07:00</updated><title type='text'>Assignment 1 and Midterm 1</title><content type='html'>I'm currently working through the first assignment submissions and hope to have it all graded on WebCT in the next couple of days.&amp;nbsp; I'm writing out a bunch of notes/suggestions that are not necessarily related to the actual marks for the assignment, so if you see a bunch of text, don't panic!&lt;br /&gt;&lt;br /&gt;I also just found out your first midterm is coming up Tuesday next week.&amp;nbsp; I had been hoping to do an informal tutorial before the midterm to help you prepare, but the test is a little too soon.&amp;nbsp; So instead what I might do is organize one after the midterms are marked so we can at least go over the topics that caused the most trouble.&amp;nbsp; We can also do one before the second midterm.&lt;br /&gt;&lt;br /&gt;A quick tip for the midterm: whenever you see inconsistencies in things like how transformation matrices are written (is the vector on the left hand side or the right?) or what kind of coordinate system is being used (left handed or right handed?), don't worry about which one you use on the test - just make sure it's clear to me. You can write a little note at the start of a question if it helps.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9005631834827240446-6657322114538481742?l=comp3501-fall2011.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://comp3501-fall2011.blogspot.com/feeds/6657322114538481742/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/10/assignment-1-and-midterm-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/6657322114538481742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/6657322114538481742'/><link rel='alternate' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/10/assignment-1-and-midterm-1.html' title='Assignment 1 and Midterm 1'/><author><name>Gail Carmichael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-i5r47EET9Mk/AAAAAAAAAAI/AAAAAAAADQc/bEbY_p9K2gk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9005631834827240446.post-2094867350819106194</id><published>2011-09-29T14:43:00.000-07:00</published><updated>2011-09-30T07:32:34.803-07:00</updated><title type='text'>The Missing Details of the Coordinate Transform</title><content type='html'>As promised, here is an explanation of the coordinate transform part of the lecture I gave on viewing...&lt;br /&gt;&lt;br /&gt;As you may recall, we used the following example to visualize what we were trying to do:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-1KkVz_GN7h8/ToTgqZM8BiI/AAAAAAAADSM/sSpc0nOJHr8/s1600/coordxform-blog-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="156" src="http://4.bp.blogspot.com/-1KkVz_GN7h8/ToTgqZM8BiI/AAAAAAAADSM/sSpc0nOJHr8/s200/coordxform-blog-1.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Point &lt;b&gt;p&lt;/b&gt; could be written in terms of either the &lt;i&gt;xy&lt;/i&gt;-coordinate system or the &lt;i&gt;uv&lt;/i&gt;-coordinate system.&lt;br /&gt;&lt;br /&gt;Let's say we have point &lt;b&gt;p&lt;/b&gt; in terms of &lt;i&gt;uv&lt;/i&gt;.&amp;nbsp; We would write that as (u&lt;sub&gt;p&lt;/sub&gt;,v&lt;sub&gt;p&lt;/sub&gt;), as in the &lt;i&gt;u&lt;/i&gt; and &lt;i&gt;v&lt;/i&gt; coordinates of point &lt;b&gt;p&lt;/b&gt;.&amp;nbsp; We want a matrix that can give us that point in terms of &lt;i&gt;xy&lt;/i&gt;: (x&lt;sub&gt;p&lt;/sub&gt;,y&lt;sub&gt;p&lt;/sub&gt;).&amp;nbsp; An easy way to do this is find the linear combination of the basis vectors &lt;b&gt;u&lt;/b&gt; and &lt;b&gt;v&lt;/b&gt;, but with those vectors written with their coordinates relative to &lt;i&gt;xy&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;To make life even easier, we can imagine temporarily translating &lt;b&gt;u&lt;/b&gt; and &lt;b&gt;v&lt;/b&gt; so that the point &lt;b&gt;e&lt;/b&gt; lines up with the &lt;i&gt;xy&lt;/i&gt;-coordinate system's origin &lt;b&gt;o&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-RG0NcHXEsBg/ToTjLHZpfhI/AAAAAAAADSQ/LkjXvxtCpCI/s1600/coordxform-blog-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="166" src="http://4.bp.blogspot.com/-RG0NcHXEsBg/ToTjLHZpfhI/AAAAAAAADSQ/LkjXvxtCpCI/s200/coordxform-blog-2.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Then we can easily write &lt;b&gt;u&lt;/b&gt; and &lt;b&gt;v&lt;/b&gt; with &lt;i&gt;xy&lt;/i&gt; coordinates: &lt;b&gt;u&lt;/b&gt;=(x&lt;sub&gt;u&lt;/sub&gt;,y&lt;sub&gt;u&lt;/sub&gt;) and &lt;b&gt;v&lt;/b&gt;=(x&lt;sub&gt;v&lt;/sub&gt;,y&lt;sub&gt;v&lt;/sub&gt;).&amp;nbsp; That's what gives us the first matrix we multiplied (u&lt;sub&gt;p&lt;/sub&gt;,v&lt;sub&gt;p&lt;/sub&gt;) by in the coordinate transform:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-mNmxTAvmkf8/ToTkC-K9Y6I/AAAAAAAADSU/U5eyLgAGl4U/s1600/coordxform-blog-3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="157" src="http://2.bp.blogspot.com/-mNmxTAvmkf8/ToTkC-K9Y6I/AAAAAAAADSU/U5eyLgAGl4U/s200/coordxform-blog-3.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;This matrix multiplication results in the same linear combination of &lt;b&gt;u&lt;/b&gt; and &lt;b&gt;v&lt;/b&gt; we had before, except now we are multiplying &lt;b&gt;p&lt;/b&gt; with the &lt;i&gt;xy&lt;/i&gt; coordinates of these basis vectors rather than their usual &lt;i&gt;uv&lt;/i&gt; values.&lt;br /&gt;&lt;br /&gt;The result will almost be the point &lt;b&gt;p&lt;/b&gt; in &lt;i&gt;xy&lt;/i&gt; coordinates... we just have to compensate for the fact that we moved &lt;b&gt;u&lt;/b&gt; and &lt;b&gt;v&lt;/b&gt; to overlap with &lt;b&gt;x&lt;/b&gt; and &lt;b&gt;y&lt;/b&gt;.&amp;nbsp; Since we know we translated the basis vectors by the distance from &lt;b&gt;o&lt;/b&gt; to &lt;b&gt;e&lt;/b&gt;, we can move our resulting point to its proper home by translating it back.&amp;nbsp; That distance in &lt;i&gt;xy&lt;/i&gt;-coordinates is x&lt;sub&gt;e&lt;/sub&gt; and y&lt;sub&gt;e&lt;/sub&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-rRthytVbEL8/ToTlheC14pI/AAAAAAAADSY/F-8BgchkD1Q/s1600/coordxform-blog-4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="116" src="http://3.bp.blogspot.com/-rRthytVbEL8/ToTlheC14pI/AAAAAAAADSY/F-8BgchkD1Q/s320/coordxform-blog-4.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;This will hopefully make sense to you all now (it finally makes sense to me! heh), but please feel free to ask further questions in the comments or via email if I can clarify any little bit of it.&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Note&lt;/i&gt;: While I'm sure the slides will be posted on the course webpage/WebCT, you can &lt;a href="http://gailcarmichael.com/sites/default/files/ViewingNotes.pptx"&gt;download them here &lt;/a&gt;now if you'd like.&amp;nbsp; Remember that there are explanations in the notes section.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9005631834827240446-2094867350819106194?l=comp3501-fall2011.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://comp3501-fall2011.blogspot.com/feeds/2094867350819106194/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/09/missing-details-of-coordinate-transform.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/2094867350819106194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/2094867350819106194'/><link rel='alternate' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/09/missing-details-of-coordinate-transform.html' title='The Missing Details of the Coordinate Transform'/><author><name>Gail Carmichael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-i5r47EET9Mk/AAAAAAAAAAI/AAAAAAAADQc/bEbY_p9K2gk/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-1KkVz_GN7h8/ToTgqZM8BiI/AAAAAAAADSM/sSpc0nOJHr8/s72-c/coordxform-blog-1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9005631834827240446.post-1915927462801244899</id><published>2011-09-27T14:23:00.000-07:00</published><updated>2011-09-27T14:23:15.185-07:00</updated><title type='text'>2D Transformations</title><content type='html'>Before moving on to 3D transformations, you should make sure you have a good handle on the same transformations in 2D.&amp;nbsp; Earlier this year I had made an applet that lets you play around with the basic transformation matrices - it might be useful to you when reviewing how it all works.&lt;br /&gt;&lt;br /&gt;In this applet, an arrow is transformed according to the matrices along the bottom.&amp;nbsp; You can imagine the points in the arrow being in a matrix to the far right, as would be the case when working these things out on paper.&amp;nbsp; The right-most matrix is applied first, then the next one to its left, and so on.&lt;br /&gt;&lt;br /&gt;You can rearrange the matrices to understand exactly how order matters.&amp;nbsp; You can also play around with the raw transformation values and see how the matrices are updated.&lt;br /&gt;&lt;br /&gt;Press play to see the animation, and stop to reset it and allow you to make further changes.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;&lt;a href="http://gailcarmichael.com/processing/learngraphics/"&gt;Go to the applet now...&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9005631834827240446-1915927462801244899?l=comp3501-fall2011.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://comp3501-fall2011.blogspot.com/feeds/1915927462801244899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/09/2d-transformations.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/1915927462801244899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/1915927462801244899'/><link rel='alternate' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/09/2d-transformations.html' title='2D Transformations'/><author><name>Gail Carmichael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-i5r47EET9Mk/AAAAAAAAAAI/AAAAAAAADQc/bEbY_p9K2gk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9005631834827240446.post-1743609927897317940</id><published>2011-09-25T15:55:00.000-07:00</published><updated>2011-09-25T15:55:52.044-07:00</updated><title type='text'>Issue With gameIO::keyboardPressed Function</title><content type='html'>A student discovered that he was unable to get the arrow keys working using the skeleton io_&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;demo&lt;/span&gt; code provided for Assignment 1, despite the fact that other keys seemed to work fine.&lt;br /&gt;&lt;br /&gt;As it turns out, the main issue is with the data type chosen for the argument &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;key&lt;/span&gt;: &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;char&lt;/span&gt;.&amp;nbsp; This is a signed data type, but the &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;DIK_*&lt;/span&gt; values used to identify the keys chosen are in the range of 0-255.&amp;nbsp; So when an arrow key value like &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;DIK_RIGHTARROW&lt;/span&gt; - which is over 200 - is interpreted as a signed value, it ends up being negative (due to the most significant bit being 1).&amp;nbsp; This means that when we index &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;mKeyboardState&lt;/span&gt; we are actually referencing memory that is &lt;i&gt;before &lt;/i&gt;the start of the array.&amp;nbsp; If that memory happens to contain just the right thing (which is easy to do - all it needs is to have its most significant bit being 1), our function will return true even if the right arrow is not being pressed.&lt;br /&gt;&lt;br /&gt;The solution is simple: just change the argument type to be an &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;unsigned char&lt;/span&gt; or cast the argument to be unsigned before using it to index the array.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9005631834827240446-1743609927897317940?l=comp3501-fall2011.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://comp3501-fall2011.blogspot.com/feeds/1743609927897317940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/09/issue-with-gameiokeyboardpressed.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/1743609927897317940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/1743609927897317940'/><link rel='alternate' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/09/issue-with-gameiokeyboardpressed.html' title='Issue With gameIO::keyboardPressed Function'/><author><name>Gail Carmichael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-i5r47EET9Mk/AAAAAAAAAAI/AAAAAAAADQc/bEbY_p9K2gk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9005631834827240446.post-5162561815120595032</id><published>2011-09-25T15:47:00.000-07:00</published><updated>2011-09-25T15:47:22.523-07:00</updated><title type='text'>Toymaker: Computer Games Programming</title><content type='html'>I found the &lt;a href="http://www.toymaker.info/index.html"&gt;Toymaker&lt;/a&gt; site when researching how the DirectInput interface worked.&amp;nbsp; It looks like there is a lot of useful stuff not only for DirectX game programming, but also XNA.&amp;nbsp; Should be worth bookmarking for learning more about various topics as we go through the course and possibly for some of your future courses / projects.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9005631834827240446-5162561815120595032?l=comp3501-fall2011.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://comp3501-fall2011.blogspot.com/feeds/5162561815120595032/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/09/toymaker-computer-games-programming.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/5162561815120595032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/5162561815120595032'/><link rel='alternate' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/09/toymaker-computer-games-programming.html' title='Toymaker: Computer Games Programming'/><author><name>Gail Carmichael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-i5r47EET9Mk/AAAAAAAAAAI/AAAAAAAADQc/bEbY_p9K2gk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9005631834827240446.post-8147534227065838673</id><published>2011-09-25T15:44:00.000-07:00</published><updated>2011-09-25T15:44:47.423-07:00</updated><title type='text'>Purpose of this blog</title><content type='html'>Hello everyone! I decided to start this blog so that we would have a one-stop place for addressing common issues that come up in assignments and course material.&amp;nbsp; I will try to share useful resources that I've found and write out solutions to issues I think many students may face.&amp;nbsp; I will also likely post a list of common issues with completed assignments and refer to that list when I return your work.&lt;br /&gt;&lt;br /&gt;Please feel free to comment here or email me directly with questions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9005631834827240446-8147534227065838673?l=comp3501-fall2011.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://comp3501-fall2011.blogspot.com/feeds/8147534227065838673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/09/purpose-of-this-blog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/8147534227065838673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9005631834827240446/posts/default/8147534227065838673'/><link rel='alternate' type='text/html' href='http://comp3501-fall2011.blogspot.com/2011/09/purpose-of-this-blog.html' title='Purpose of this blog'/><author><name>Gail Carmichael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh5.googleusercontent.com/-i5r47EET9Mk/AAAAAAAAAAI/AAAAAAAADQc/bEbY_p9K2gk/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>
