text:
cs291 »
These are all the Instructor Notes from the course, except for the notes about exercise and quiz solutions.
Eric Haines has a blog - Realtime Rendering. You can also read his answer on our forums on recommended reading
First demo - three.js WebGL materials demo with texture from Humus.
Second demo - three.js WebGL materials bumpmap skin demo with Lee Perry-Smith head.
Photographs throughout this course are from Wikimedia Commons, unless otherwise noted. Building, XYZ, interactive.
You can try the brain program yourself. Chrome is the best browser for it. If it doesn't work for you, don't worry - the next lesson will help guide you through setting up WebGL on your machine.
Games such as Angry Birds use a form of 2.5D rendering.
To see if your machine is set up right, try this site. If your machine doesn't show a spinning cube, read our help page or go to this page and look under "Implementations". For Safari on the Mac, follow these instructions.
An excellent summary of what supports WebGL is here. Some graphics cards are blacklisted because their drivers are old, never to be updated, and won't work with WebGL. See this page for more information. It's possible to override the blacklisting in Firefox, see this article - this might be an acceptable "if all else fails" solution, since this course will be using fairly vanilla WebGL features. Google Chrome has blacklisted XP, so there's a similar workaround. If all else fails, try different browsers, as they have different limitations.
Now that you're looking down here, please check out these tips for getting the most out of this course. It's a minute of your time well-spent.
The Wikipedia page on motion blur gives a start on the topic. You can see a little bit of some motion blur correction in this demo, Go to view 4 (hit the 4 key) and toggle motion blur on an off with the "b" key. The ground will be blurrier as you move when motion blur is on.
Try to interact with the demo!
If it does not work, check wiki for WebGL troubleshooting information!
The Wikipedia page on motion blur gives a start on the topic.
Some applications will aim to avoid a rate between 30 and 60 FPS, since then the frame rate doesn't align with the refresh rate. This video explains in detail how this mismatch can cause a sense that the interaction with the application is not smooth. That said, many games simply strive for as fast a rate as possible.
This question is simplifying the situation. The 50 Hz rate is actually the interlaced field update rate for European TV, the frame rate is then 25 Hz. Here we're interested in the time between field refreshes at 50 Hz. If you want to learn more, see this page.
Some applications will aim to avoid a rate between 30 and 60 FPS, since then the frame rate doesn't align with the refresh rate. This video explains in detail how this mismatch can cause a sense that the interaction with the application is not smooth. That said, many games simply strive for as fast a rate as possible.
See the Wikipedia article on the eye for some truly amazing facts about different types of eyes.
Incognito is a great book on the brain. The first part is all about how the brain interprets what the eye sees.
For this question, compare the human visual system (eye and brain together) to the lens mechanism of a camera.
Photo from Wikimedia Commons.
See my blog entry for way too much information on spelling the word "frustum".
You can look at the demo shown in the video by going to this link, letting it load and then clicking "Start".
For an in-depth overview of how three.js labels elements in a scene, see this page.
In case you're not watching the video and just doing the quiz, the answer should really be in terms of pixels per second.
Here's a rough back of the envelope computation of photons per second.
Here's a rough back of the envelope computation of photons per second for a light.
There are good articles about the history of the teapot by Frank Crow, S.J. Baker, and on Wikipedia. There are a number of iconic models and images in computer graphics. Some famous models can be found here and here; my own teapot code is still available. Teapots still rule over all, with their own fan club and teapot sightings page.
The demos shown can be run in your browser: teapot, teaspoon, and teacup.
The teapot sketch is courtesy of Martin Newell, who is working to put it onto Wikimedia Commons. The teapotahedron image is courtesy of Erin Shaw. The teapot photos are from here and here on Wikimedia Commons.
Photos from Wikimedia Commons: shiny ball, glass ball and light bulb.
A book I helped write covers the pipeline in depth, and the chapter is free online here.
For an even more thorough walk down the pipeline, read this set of articles.
I should note that what I'm describing is a typical desktop or laptop computer's GPU. Portable devices such as smart phones and tablets will usually use tile-based rendering instead.
There's a brief explanation of this algorithm here.
The good news is that even this type of architecture can still be controlled by WebGL.
I should note that what I'm describing is a typical desktop or laptop computer's GPU. Portable devices such as smart phones and tablets will usually use tile-based rendering instead.
There's a brief explanation of this algorithm here.
The good news is that even this type of architecture can still be controlled by WebGL.
The three.js homepage is well worth exploring.
I interviewed the creator of three.js - I found his background inspiring.
WebGL's homepage is here.
To track the latest WebGL eye candy and other news, see this and this site. Three.js also has a subreddit.
On Windows the Chrome browser actually converts WebGL calls to DirectX; read about it in this free chapter from the book OpenGL Insights.
Remember - you can interact with the demo!
Look at the objects from different angles by clicking and dragging with your left mouse button. Object and light locations do not change, you change your view point on the objects.
If the demo does not show (common problem with FireFox), please reload the page.
Remember - you can interact with the demo!
Look at the objects from different angles by clicking and dragging with your left mouse button. Object and light locations do not change, you change your view point on the objects.
If the demo does not show (common problem with FireFox), please reload the page.
Remember - you can interact with the demo!
Look at the objects from different angles by clicking and dragging with your left mouse button. Object and light locations do not change, you change your view point on the objects.
If the demo does not show (common problem with FireFox), please reload the page.
Image credits at Wikimedia Commons: Isometric, spheres, rings, and star.
Firefly image from Wikimedia Commons.
Another way to say it: how many dimensions are needed if you want to capture the radiance from any location and direction in the universe?
USMC and lighthouse from Wikimedia Commons.
The Light Field is described here. For more on computational photography, Ramesh Raskar and Jack Tumblin's site is a good place to start.
Drawing from Wikimedia Commons.
You can also run the code locally.
For more serious debugging of the online exercises, see the invaluable advice here from Mathieu Civel. A small addition to your code lets you set a break and examine values easily within your browser.
The teapot model is viewable (in WebGL and other forms) at the Sculpteo site.
Some of the service firms for making 3D prints for consumers include: Shapeways, Sculpteo, i.materialise, and Ponoko.
This video gives a virtual tour of the The Gallery at Autodesk. You can also visit for free if you're ever in San Francisco.
Wikipedia has a good overview of 3D printing.
There are at least two worthwhile free design programs with 3D printing in mind: 123D Design and Tinkercad. If you'd rather make models by specifying things in a text file: OpenSCAD is good.
A good, free program for turning a set of photos into a 3D model: 123D Catch.
These products and much else is covered in depth in the Make Ultimate 3D printing guide. Highly recommended if you're thinking of getting a home 3D printer.
For a general background about 3D printing, the new book Fabricated is inspiring and full of ideas.
You can read more about the Cartesian coordinate system on Wikipedia. For a fuller mathematical presentation of the material in this unit, see Gortler's "Foundations of 3D Computer Graphics".
Coordinate system image if from Wikimedia Commons.
This is a long-standing question, whether to use left-handed or right-handed coordinates and when. Here is some of the ancient debate.
My little hobby project is 3D printing Minecraft models.
The Battlefield 3 screenshot is courtesy of Duncan Harris at Dead End Thrills.
If you can spell "frustum" and "tessellation" correctly, you've avoided about 95% of the spelling errors you can make in the field of computer graphics; see this article.
The mosaic photo and Biosphere photo are from Wikimedia Commons.
Culling is on by default, in other words "side" is set to THREE.FrontSide. The other settings are THREE.DoubleSide and THREE.BackSide.
See the Loader class and the various model loaders available for three.js. Webgl-loader convert models for fast loading into WebGL web pages.
Various ways to load geometry into WebGL are discussed in Chapter 2 of the "WebGL Beginner's Guide" and Chapter 7 in "WebGL: Up and Running". I recommend the Kindle version of each; see my review.
As a Udacity student, you can register for free use of Autodesk software. When you register, note that Udacity is considered to be in Sunnyvale, CA for purposes of registration.
You can run the demo shown.
For more serious debugging of the online exercises, see the invaluable advice here from Mathieu Civel. A small addition to your code lets you set a break and examine values easily within your browser.
If you feel you need more knowledge about JavaScript, see this section on our Materials page for some resources for learning this language.
For the trigonometry behind drawing a polygon, see this post. If you'd like a refresher on trigonometry, see this site or watch the Khan Academy's lessons on this subject.
(thanks to fellow Udacians for these site suggestions)
My sphereflake generator and other procedural model makers are available for download. L-Systems are a form of procedural modeling that is particularly suited for making organic forms. For more resources, see the Wikipedia page on procedural modeling.
Formal plan drawings are available on the Course Notes page, along with photos of the original drinking bird.
If you toggle on "Show axes", the axes shown are X == red, Y == green, Z == blue.
See this web page for three.js documentation. The cube, sphere, and cylinder methods are listed towards the bottom left.
There are many other geometric objects supported by three.js. See Lee Stemkoski's demos for shapes, extrusion, and 3D text. There are also demos for subdivision surfaces, a way to smooth an initial mesh, and CSG, a way to subtract one object from another.
Learn more about the drinking bird here and here.
Formal plan drawings are available on the Course Notes page, along with photos of the original drinking bird.
If you toggle on "Show axes", the axes shown are X == red, Y == green, Z == blue.
See this web page for three.js documentation. The cube, sphere, and cylinder methods are listed towards the bottom left.
There are many other geometric objects supported by three.js. See Lee Stemkoski's demos for shapes, extrusion, and 3D text. There are also demos for subdivision surfaces, a way to smooth an initial mesh, and CSG, a way to subtract one object from another.
Learn more about the drinking bird here and here.
As a Udacity student, you can register for free use of Autodesk software. When you register, note that Udacity is considered to be in Sunnyvale, CA for purposes of registration.
You can run the demo and see z-fighting yourself.
You can try out the demo in the video.
For more about wavelengths of light, the visible spectrum, and color in general, see Wikipedia's articles here and here.
Articles on Wikipedia also cover additive color and subtractive color, as well as CMYK.
Look at the Color class documentation for three.js for further help. If you don't know about hexadecimal, the Wikipedia page is a good place to start. There are plenty of decimal to hexadecimal converters online. Here's one, for example.
Mach Bands are described further on Wikipedia.
We decided to put the Gouraud vs. Phong control in our previous demo. To see this effect, go back to this demo, open up the tessellation control, and toggle "Use Phong" on and off. You'll see a dramatic difference!
Try the jellyfish demo by Aleksandr Rodic yourself. If it runs too slowly, Aleksandr has a more optimized version here.
Another good use of transparency is the Zygote Body demo. There is a vertical slider on the left side of the screen - zoom in and move it up and down slowly.
Wikimedia Commons credits: refracted pencil, crystal ball, ashtray, and 3D glasses.
A blending demo that shows how the various different blend modes interact is available, from the book "WebGL Beginner's Guide. Three.js comes with a demo that examines many of the possible combinations - it's a bit cryptic, but you can modify things with the controls on the left.
See Lee Stemkoski's tutorial code for more examples of how to set transparent materials.
You can read more about depth peeling here. This stochastic transparency research article discusses this technique, and also provides an overview of previous solutions. Ordering triangles in a mesh to render in proper draw order regardless of view is discussed in this paper.
There is a depth-peeling demo that runs in WebGL, along with technical details.
Some notes from Aleksandr Rodic on the jellyfish:
The transparency was one of the biggest challenges I had with the demo. Actually, that was the first time I got introduced with transparency sorting problem. What I did was a dirty hack. I pre-sorted all triangles along Z axis, then I twisted the skeleton so each joint looks at the camera facing Z.
Here is a quick video showing the modeling process. The purpose of the whole demo was a video installation in Hong Kong. The challenge there was to sync the simulation across 4 computers and make it look seamless. I did that by running first stage of the sim on node.js and streaming that to browsers. Here is a demo of that.
Look at the Color class documentation for three.js for further help. There are plenty of decimal to hexadecimal converters online. Here's one, for example.
You can find the three.js documentation here. You will see the MeshPhongMaterial in the left column.
The paper lantern image is from Wikimedia Commons.
You can read more about this transparency problem and many others in this article, "It's Really Not a Rendering Bug, You See...", which is where I got the idea for this problem.
The demo running in this lesson is here.
You can find the Vector3 documentation here.
Oops, I wrote "160 + 390 = 540", it should equal "550" in most universes.
There's a lot more about Euler angles on Wikipedia. If you want to play with Euler angles more and see how they affect various objects, you might try the three.js interactive editor. The Euler quote is from here.
The Euler angles affect the object in the order Z, Y, X by default in three.js. This order is now shown properly in the user interface itself.
João Sousa kindly added the rings around the airplane, showing the X (red), Y (blue), and Z (green) rotation directions.
For three.js objects, the order you assign variables for the object doesn't matter. For example, you could set the position first or last, compared with the rotation, and get the same result. Three.js does not use these in the order you assign them. It in fact applies them in a fixed order: scale, rotation, translation (position), in terms of world space.
For example, say you set the position and rotation on a single object, e.g.
box.position.x = 3.0;
box.rotation.y = 5.7;
This works fine, and the code:
box.rotation.y = 5.7;
box.position.x = 3.0;
will do exactly the same thing. The order of assignment does not matter to the result; the order of operations will always be rotate, then translate. This is pretty different than how most computer calls work. It is also different than how some graphics libraries work, where transforms are applied in the order you give them.
When three.js actually renders the object, it then computes the effect of all the settings you made. It applies scaling first, then rotations, then translations. So even if you set the position first in your code, the scale and rotations are actually applied before it.
If you want a different order, you'll need to use a series of Object3Ds, which we'll discuss in a few lessons.
The three.js interactive scene editor is great for experimentation. First define a directional light, then add an object to the scene, then try changing the translation, rotation, and scale factors.
I want to again clear up a common confusion here, just to be sure: the order you assign rotation and translation to a single object in three.js is irrelevant. When the object is rendered, the order in which transforms are applied is always scale, rotate, translate. We'll see in the lessons to come how you can change this order of application.
To give an example, say in the previous exercise you coded:
cylinder.position.y = 50;
cylinder.rotation.x = 90 * Math.PI/180;
This would have exactly the same effect as:
cylinder.rotation.x = 90 * Math.PI/180;
cylinder.position.y = 50;
because internally three.js is just storing these values at this point. During rendering it forms the transform matrix and applies rotation first, then translation.
The TRS-80 is described on Wikipedia, and here.
"The Hunting of the Snark" is here.
See this demo for 5000 instanced spheres on the screen. More in-depth coverage of instancing can be found in this technical article.
Yes, the upper arm is below the forearm as shown here. Think of it that my T-850 robot's arm is in construction.
To use the debugger you'll have to run the githubbed code on your own. You can get the code from our GitHub repository.
The Chrome debugger is described here, Firefox's Firebug debugger here, Safari here.
For more on general matrix multiplication and the basics of linear algebra, see this guide.
An ancient (but interesting) discussion of row-major vs. column major form in computer graphics is here. It also discusses left-handed vs. right-handed, another source of conflict.
To understand the computations for the cross product, see Wikipedia. The best paper I know on solving the 0-length vector problem is by Tomas Möller and John F. Hughes, "Efficiently Building a Matrix to Rotate One Vector to Another".
It is worth noting that you can set an object's Euler rotation angles from a given arbitrary rotation matrix using three.js's Object3D.setEulerFromRotationMatrix method. Doing so has the advantage of letting you then use the position and scale parameters as usual.
The axis/angle transform and its derivation is discussed further here.
You may want to try the Euler angle demonstration program again to see how the X rotation controls the other two rotations, since it is applied last. By changing X, you change the frame of reference for how Y and Z rotation are applied.
Writing about this problem was about my first article for the internet, back in 1987.
Inverses and transposes are part of the field of linear algebra. If you have a interest in the subject, you might consider taking the Khan Academy's course. For a book specific to computer graphics, I like Farin and Hansford's book "Practical Linear Algebra", as it builds up intuition through numerous figures throughout. For a derivation of why the inverse transpose is used, along with much other useful math, see Lengyel's "Mathematics for 3D Game Programming and Computer Graphics".
There's a mistake in this video, I should have labeled the horizontal axis as the Z axis, not the vertical one. Thanks to takuya for noticing the problem.
If you want to continue on your own, I highly recommend downloading three.js from github and playing with the hundred or so demos. Or play with the demos directly and look at them in the debugger. Also worthwhile are the three.js HTML editor and the three.js scene editor - in beta, but still quite usable for experimentation and learning.
For demo-ey goodness, I recommend the WebGL and three.js subreddits, and webgl.com. Also worthwhile is Acko.net's page.
If you feel like converting my little tree growing code over, it's here. A popular free CAD program for procedural modeling is http://www.openscad.org/. Many people use it for creating models for 3D printing.
To submit to three.js's Github codebase, see the FAQ. This page answers many other questions about three.js, too.
The grader may mark your submission as correct even if the eyes aren't present. This is because we would rather err on the side of being too generous than being too constraining with our detection of the eyes. You'll know in your heart if you've really got the right answer.
Put the transforms in the usual right to left order.
There's a little drawing error, the X and Z axes' labels should be swapped. This is a right-handed coordinate system (just so there's no confusion about direction of rotation).
Put the transforms in the usual right to left order.
The demo run in this lesson is here. It uses a technique called "deferred shading", which we'll talk about later.
As a reminder, course code, lesson scripts, and much else is available from links on the wiki. All Instructor Notes are also available in one place. Finally, don't forget the forums.
I mentioned it before, but a wonderful short video of Richard Feynman talking about electromagnetic waves is worth watching. Even most mirrors are not fully reflective.
Correction: the direction to the light should be -200,200,-400, not 400.
I mentioned it before, but a wonderful short video of Richard Feynman talking about electromagnetic waves is worth watching. Even most mirrors are not fully reflective.
Instructions for contributing to three.js are here.
The three.js scene editor is here.
The three.js distribution has three deferred rendering examples, here, here, and here.
AlteredQualia's work in this area is great, see his site for more examples.
Here's an interesting article on the history of the shadow, when children first understand shadows, and more.
Lance William's original article on this algorithm is, "Casting Curved Shadows on Curved Surfaces".
In this answer video, "light.castShadow" should be "spotlight.castShadow".
Try out the "shadow bias" slider once you have this exercise working. I'll discuss this value briefly in the next lesson, but it's a good one to get a feel for by trying out yourself.
There are interactive WebGL ray tracers out there, such as this one and this.
Currently my favorite book for learning about ray tracing is "Ray Tracing from the Ground Up". I gave a talk comparing the strengths and weaknesses of ray tracing and rasterization here; related links are at my own site. I should mention I edited an informal journal about ray tracing for 20-odd years.
The 256 byte BAZE demo mentioned can be downloaded from here and seen in action here. This demo is a part of the Demoscene - as it turns out, the author of three.js was also involved with and inspired by the demoscene.
Try out the WebGL path tracer by Evan Wallace.
Wikipedia has articles on path tracing and photon mapping, though these tend to be a little too technical for my tastes.
A link to the Chunky renderer and some sample renderings can be found here. If you play Minecraft, try it yourself on your own world!
I'd never heard of Spectralon before, it's a highly diffuse material; I found it in looking for examples of Lambertian materials.
Try the demo at the start of the lesson yourself.
Three.js has two types of fog built in, Fog, which falls off linearly, and FogExp2, which falls off exponentially.
For the godrays demo, see the comments at the top of the shader code.
The altitude-azimuth diagram is from Wikipedia.
The fisheye lens, perspective, and the elevation drawing are from Wikimedia Commons.
See the Wikipedia article on graphical projections for more on this subject, including a wide range of other architectural projections.
Images from Wikimedia Commons: The Umbria Plantation and hexayurt shelter images are from Wikimedia Commons.
One clever form of illusion is based on what's called forced perspective. See this video, for example. People have played tricks with perspective for hundreds of years, such as this drawing from the 18th century.
Check previous demo code or the dat.gui documentation for how to create a slider.
Did you know that you can type mathematical expressions into Google's search box and it will compute the answer for you? Very handy.
For more on homogeneous coordinates see Wikipedia.
Use the middle mouse button to zoom in while dollying out, or vice versa.
Here's more about the dolly-zoom technique and its use in films.
Panning means something a bit different for cinematography: http://en.wikipedia.org/wiki/Panning_(camera)
Circle strafing is explained here: http://en.wikipedia.org/wiki/Strafing_(gaming)#Circle_strafing). Wikipedia has just about everything.
At 1:45 I say "9.0" when I mean "0.9".
You can see the effect on precision with this z-depth calculator. There's more about optimizing your z-depth range in this article post.
For more on the stencil buffer, this page is a start. Really, a book such as "the Red Book" or McReynolds & Blythe's are good for getting a serious education about its uses.
The three.js depth of field demo is here. AlteredQualia's tilt-shift demo is here.
Lee Stemkoski has commented code for how to put two viewports and four viewports on the screen.
Three.js has an interesting demo showing an artistic viewport effect.
A fairly good overview of the OpenGL transformation pipeline can be found on this page. Although dated, this page gives a more friendly walk down the camera pipeline.
The ancient article, "What are the Coordinates of a Pixel?" by Paul Heckbert, in the book "Graphics Gems", is worth tracking down. It's my strongest argument for why the center of a pixel or texel has the coordinates 0.5,0.5, not 0.0,0.0.
A full-screen version of this demo is here.
This demo shows how a single point, the vertex (4,5,3) of a box, is transformed from model (object) space to world, view, perspective, and finally, window coordinates. Note that the box itself is centered about the origin, but has been translated up along the Y axis so that it lays on the plane. To start, all four transforms are shown, read from right to left and top to bottom. That is, the leftmost coordinate on one line is the rightmost coordinate on the next line, the input to the next transform.
You can build up a better understanding of each step of the pipeline by changing values or moving the view and seeing what matrices are affected. Try panning the camera so that the vertex, marked with an orange dot, is in different locations on the screen – see how that affects the NDC and window coordinates. Try moving the point off the screen and see what a clipped coordinate's values are.
One cool thing to do is select "Show frustum: depths". You'll see depth planes that are equally-spaced (in terms of NDC and Z-depth values, not in terms of world coordinates). Rotate the camera around (left mouse) until it's aligned to a side view of the view frustum. Now vary the near and far plane depths under "Camera manipulation". This shows the effect of moving the near place close to the object, evening out the distribution of the plane depths while mapping these to a smaller range of world coordinates.
Once you feel familiar with the demo, you can test your knowledge by deciding on something to vary (e.g., change the field of view or pan the camera) and think about which matrix will be affected and how it will change. I found this demo very educational and I hope you do, too.
A nice overview of the transformation pipeline can be found on this page.
See the FXAA algorithm in use in this three.js demo, though you'll have to disable it yourself to see the difference.
My view of FXAA is here. There was a whole SIGGRAPH course about filtering techniques.
Antialiasing does not work on Macs due to an obscure OpenGL driver bug on NVIDIA chipsets. By the time you read this, it may be fixed.
"Man Drawing a Lute" from Wikimedia Commons.
The idea for this question is from Ronen Barzel, with permission. The slidesets for his graphics course are worth working through.
For more about WebGL security issues with textures and how to handle them, see this and this article. To run texture demos locally on your browser, you'll have to set some permissions or set up a local servers.
Here's the list of videogames with crates. Another collection of crate screenshots is here.
There are a number of places where you can download free textures, such as Humus' site, Open Game Arts' site, TurboSquid, and Autodesk's AREA site.
For a commented example of how to texture a box, see Lee Stemkoski's code.
Try the demo shown to see the latest mappings - bugs do get fixed, so it may well be different. If you want to submit fixes to three.js, you can learn about the process here.
To look at the implicit mappings and other texture methods discussed in this unit, definitely try the online editor. Load a directional light, load an object, then apply textures to your heart's content.
The character demo is located here.
It's worth noting that using mosaicing and putting a large number of objects into a single texture can help avoid changing textures, which can increase performance.
You can read more about this problem (and many others) in this article, "It's Really Not a Rendering Bug, You See...". This article also shows how meshing can help solve it.
There is one case I know where triangles are not sufficient to properly render an object, namely, the cone. There are workarounds, but they're a bit unnatural.
If you want to manipulate the wrap mode separately for each axis, try out the demo here from the book "WebGL Beginner's Guide". Another wrap mode example of using repeat is in Lee Stemkoski's code.
Note that wrap modes in WebGL will only work for textures that are a power of two.
If you change the wrap mode, you need to set "texture.needsUpdate = true;". See the demo code for an example.
You can access all the code from http://udacity.github.io/cs291/
If you want to know more about advanced color tiling, read about Wang Tiles.
Minecraft now allows all textures to be animated, leading to madness.
Try different texture resolutions to see where minification takes place. Change the minification to "nearest" to see a small improvement, but more will need to be done... in the next lesson.
You can see the effects of different filtering and also which mipmap level is used (by its color) in this demo. Also try this demo to see the effect of various sampling and filtering settings.
Change the minification to "mipmap" to see the improvement.
You can and should try out this additional anisotropy demo. Depending on your machine's GPU, the anisotropy demo may not work for you.
There are a number of benefits to premultiplied alpha, some of which are discussed in this blog post by Tom Forsyth.
A number of free packages let you work with texture alpha, including GIMP and paint.net. Careful where you click on the paint.net page, it's a minefield.
Almost all of the demos shown are a part of the three.js distribution. Here is the list:
Simple squares
Circle cutouts
Point cloud from Markus Schütz on his potree.org site
For more examples of using particles to represent real scenes, try the potree.org demos - the longer you wait, the more particles get loaded.
For commented code that shows how to create and use billboards, see Lee Stemkoski's code.
Lens flare is described here, and some ways to simulate it on the GPU are here.
My original lesson plan spent more time on this area. See the Lesson Scripts if you want to see the initial, considerably longer lessons.
The original version of the heads program can be found here. Note that this program may not run on older computers, as it requires Shader Model 3.0 level of GPU support.
Evan Wallace's lovely water demo in WebGL shows displacement mapping in action.
The demo that created these images is here. Ambient occlusion has some basic coverage on Wikipedia, as does screen-space ambient occlusion. To see ambient occlusion and screen-space ambient occlusion in use, along with many other effects, see the Agni's Philosophy page - I recommend clicking the "translate" button.
The demo shown can be found here - warning, music will play.
There is a commented tutorial by Lee Stemkoski on skyboxes. You can also find skybox code with the three.js distribution.
See Humus' site for a large variety of freely-reusable reflection cube maps and other textures.
For a nice implementation of a surrounding environment, see this demo.
For commented code on how to set up reflection mapping, see Lee Stemkoski's demo.
See Humus' site for a large variety of freely-reusable reflection cube maps and other textures.
Demos shown in the video were done with three.js, here and here. Here's yet another car demo. It's fun in that you can drive the car around with the arrow keys. One more nicely-done car is here.
You have to put numbers in all boxes.
Three.js provides a number of refraction mapping demos: spheres, angels, and heads.
As usual, Lee Stemkoski provides a simple demo showing this effect.
A free utility to blur cube maps is provided by AMD. The site has a good runthrough of the effects achievable.
The car videos were made using Showcase, which is a pretty fun program to toy with for styles and materials. Beyond the free trial, as a Udacity student you can register for free use of Autodesk software. When you register, note that Udacity is considered to be in Sunnyvale, CA for purposes of registration.
There's more about diffuse maps, aka irradiance maps, at this site, along with a demo.
There are ways to extend to irradiance map idea to vary with location, see this seminal paper from Gene Greger et al., and this recent work in "Far Cry 3" for just one application of it. Better yet, there's a demo in three.js along with a full explanation.
The demo shown is here.
To see how to make a recursive video screen, see Lee Stemkoski's commented demo code.
The video display demo shown is distributed with three.js. A demo by Lee Stemkoski has commented code to display a video on a surface. You can also see how to capture webcam data in this and this demo of his, and how to warp camera views here.
The grass texture is a lower-resolution version from Humus' site, which has many freely-reusable reflection cube maps and other textures.
By default the reflection map is multiplied by the computed surface. There are other ways to mix the two results using the "combine" parameter, such as mixing and addition. See this demo's code, for example.
Here is the OpenGL pipeline in great detail; from the book "OpenGL Insights'.
Interestingly, you can visit this web page, which will report on the capabilities of your machine. Within WebGL there are also extensions, proposed new capabilities not supported by all (or sometimes, even any) machines.
Look here for a list of uniform types.
In three.js you can use custom attributes with ShaderMaterial. It's a bit awkward but it works, see examples here and here.
Here are some GLSL (the OpenGL Shading Language) resources: reference site, shading language description, manual pages, data types, and reference guide. The official specification is here.
See this posting for what matrices are built-in for shaders in three.js. You can also look at code and see the list.
This nice in-browser GLSL tutorial lets you change lines and immediately see the result. The whole site gives more elaborate examples and an in-browser editor.
If you use the Sublime Text 2 editor, you may want to get the GLSL syntax add-on. There are a few, this was the best one I found.
There is also a GLSL shader validator I just noticed; I haven't tried it yet.
Here's another beautiful example program, done by overlaying textures.
The classic book "Texturing and Modeling: A Procedural Approach" is still quite relevant, despite its age. If you delve into procedural textures at all, this is the first book to get.
There's a bit on using Chrome's Canvas inspection for debugging WebGL itself.
For image examination and capture I recommend the (not free, but worth it) FastStone Capture.
See the Wikipedia article on the Fresnel equations for more background. A more in-depth article by Sébastien Lagarde is worth the effort. Our book also covers this topic.
The Schlick approximation to the Fresnel term is often used in interactive rendering, since it's quick to compute.
One problem you'll see in the Fresnel demo that follows is that at some angles the specular highlight simply disappears. Read more about this problem in this article, which I've pointed at many times so far.
This slide set gives a great runthough of why physically-based materials are worth using.
Naty Hoffman has taught extensively on this subject at SIGGRAPH. Here is an early introduction. This slideset and background notes bring things up to date.
While the code here is something of a hack, there are real implementations of anisotropy, where you define a direction on the surface for how the material is oriented. See this article, http://content.gpwiki.org/index.php/D3DBook:(Lighting)_Ward, for one classic model.
Note: Firefox version 21 does not currently support loops for this exercise, Chrome does. If you use Firefox, you'll need to unroll the loop, or use the Nightly Firefox, which has fixed the loop problem.
I submitted a bug about the loop issue to Mozilla, and they rapidly determined that this is indeed a bug, and that the newest version of Firefox (in beta) fixes this problem. I've verified this, that Version 24 fixes this loop problem. You can get the Nightly Firefox here if you want to really be on the bleeding edge (but also have the loop problem fixed).
Now you can handle the truth about diffuse vs. specular.
The Hideo Kojima team has a great video about their latest physically-based-rendering game engine for Metal Gear Solid. Also, compare night and day.
Skin demos can be seen here, which uses a simple wrap-around lighting model and has a more shiny and sharp look, and here, with a softer, more realistic feel, and that uses a more complex multipass texturing approach. There are a few related articles online from the GPU Gems books about skin in particular: this and this from "GPU Gems", and this newer article in "GPU Gems 3".
The gamma correction article on Wikipedia is pretty good. To see what your device's gamma is, see Cornell's gamma page - it's usually 2.2. If you try this on a laptop, make sure to look at the screen face on. Many laptop displays vary considerably with view angle.
For an excellent comparison of gamma-corrected edges, see this properly corrected image vs. this uncorrected one.
Here's a compare of lighting of a single light and how the falloff is poor without gamma correction. Note the sharp edge for the lighting falloff in the upper image.
Three.js does not properly correct texture colors as they're read in, but rather on sampling the uncorrected mipmap levels. This leads to mipmaps still getting darker as higher mip levels are used.
A quick visual rundown of the effect of gamma correction, and much else having to do with physically-based materials, is in this worthwhile slide set. My favorite article on gamma correction is from the free and wonderful book GPU Gems 3. See our online books page for more free books. Other good articles are here and here, among many others, such as Wikipedia's coverage.
There's a bit more to monitor response and gamma correction, see this article on sRGB for what the industry aims for. See our blog for way more on sRGB and related monitor and color issues. WebGL has a proposed (but unimplemented) sRGB extension, more here.
This demo shows the effect of gamma correction on output. Light colors are not adjusted on input (renderer.gammaInput = false;). Note how the overlapping area is comparatively brighter to the individual lights (and unrealistic) when gamma correction is turned off.
A much more in-depth tutorial is here, along with the demo we used. Lee Stemkoski has related commented tutorial programs here, here, and render to texture here.
Another good image manipulation demo in WebGL is here. Image processing can do great things, like this.
You can also try out this demo from the WebGL Beginner's Guide.
The "ShaderX^2: Tips & Tricks" book is quite old, but free to download. It has some excellent, comprehensive articles on image processing on the GPU.
The difference between luma and luminance is discussed here.
Extremely inspirational shaders can be found at shadertoy, GLSL sandbox, and Iñigo Quílez site.
For some idea where the state of the art is today, see these talks from the "Advances in Real-Time Rendering" course from SIGGRAPH. Better yet, attend SIGGRAPH! Volunteers are welcome.
An excellent source of information about the internals and optimizing for the GPU is the Beyond Programmable Shading course at SIGGRAPH. Despite the name, it has much material directly relevant to shader programming.
Here are some GLSL (the OpenGL Shading Language) resources: reference site, shading language description, manual pages, data types, and reference guide.
There are two parts to this solution. You want to set the position to be on a sphere centered at the origin, of a specified radius. You then want to offset the surface, a separate translation, so that the center stays in view. That is what the long equation I give in the vertex shader is doing: moving the vertex to be on the sphere, then moving it down in order to stay in view.
Don't forget that in the previous exercise we moved the vertex location twice: once to put it on the sphere's surface, then translated downwards to bring it back in view.
Lee Stemkoski has a nice tutorial program allowing you to put in a function and have the mesh generated for it. This is not vertex-shader-based, but is worth a look.
Worth a second look, Evan Wallace's water ripples demo in WebGL shows normals generated on the fly in a great way.
Thresholding is described on Wikipedia: http://en.wikipedia.org/wiki/Thresholding_(image_processing)
See the Beyond Programmable Shading course notes for more about optimizing code for GPUs.
The article that talks about wrap lighting is Real-Time Approximations to Subsurface Scattering.
The demos shown are by Max Ogden and James Halliday, (also see the related blog), and Daniel Hede.
In case you haven't looked at the documentation, the dat.GUI library is how we've been adding sliders to programs.
This tutorial by Lee Stemkoski shows how to set a camera to follow behind a moving object; use WASDQE to move. Switching between cameras is shown in this demo, hit the 1 and 2 key.
See this page for a good run through of events.
For examples of the various events and how to use them, I recommend looking through the three.js code examples themselves, direct download. Search the HTML code examples for "addEventListener". For mass file searching on Windows, I like the free Agent Ransack utility.
This demo is based on a sample from three.js. Note that the sample works without using WebGL at all! Three.js has limited support for non-WebGL 3D rendering.
Note: in this lesson I set only the X and Y values when creating the mouseVector Vector3. This is valid in JavaScript, the third value defaults to 0. In retrospect it would have been clearer to simply put the 0.
For a more thorough tutorial on picking in three.js see this page.
Look at the TrackballControllers.js code in three.js if you want to see how touch events are handled.
For a picking demo in WebGL, see this code from the book "WebGL Beginner's Guide".
One method I don't discuss in this lesson is the idea of first rendering each object with a unique color. This "ID image" can then be accessed and the color used to find what object is visible at a given pixel.
See this article for a bit more about requestAnimationFrame.
Adding new parameters to an object can also hurt the performance of accessing properties of that object, see this presentation.
Wikipedia's article on motion capture is a reasonable summary. Photo used in lesson is from Wikimedia Commons.
The wonderful head-tracker demo in three.js is at Jerome Etienne's site. Try it!
There are motion capture databases out there for experimentation, such as this and this.
This website has a good explanation of tween.js and a worthwhile demo of easing. More about Blender export here. Here's a tutorial of another tween library, Greensock.
Wikipedia's overview of keyframing is a reasonable start, though is mostly concerned with 2D content. The article on interpolation for computer graphics is bare-bones, but talks about some basics. Much more can be found in the Essential Math for Games Programmers course notes.
ThreeFab lets you animate scenes, it was used for the lamp animation. It's an alpha, and looks inactive, but has some interesting features. Read more about how to export from Blender and use ThreeFab. Try it here.
This demo shows an assembly animation done in three.js.
I encourage you to examine my example to see how to use the tweening library. The three.js tweening library is described in this tutorial. Try this demo to see the effects of the many easing curves supported.
The animated texture tutorial program is by Lee Stemkoski. He has many other commented tutorials available.
Just in case you don't know what a flipbook is, read this and then make your own.
Here's the code snippet to copy and paste to see my more artistic solution:
texture[effectController.mtlName].offset.set( 0.2Math.sin(2time), time );
texture[effectController.mtlName].repeat.set( effectController.repeat, effectController.repeat/3 );
Wikipedia discusses slerping a bit if you want to know a little more.
This presentation on rotations gives a thorough run through of rotation interpolation and quaternions.
The Team Fortress 2 demo is here. Another skinning demo is here.
The Ginger demo shown in this lesson gives a great demo of the power of morph targets. Further technical information is here.
Lee Stemkoski has a morph animation code tutorial - use the arrow keys. Three.js has a few relevant demos: morphing between animations and skinning and morphing.
A bit more about morph targets can be found on Wikipedia.
See the Loader class and the various model loaders available for three.js. Webgl-loader convert models for fast loading into WebGL web pages. There's more information on the three.js FAQ page.
Various ways to load geometry into WebGL are discussed in Chapter 2 of the "WebGL Beginner's Guide" and Chapter 7 in "WebGL: Up and Running". I recommend the Kindle version of each; see my review.
Register as a student or teacher for free use of Autodesk software. When you register, note that Udacity is considered to be in Sunnyvale, CA for purposes of registration.
The full interview clip is here. There is an extensive interview with Chris Edwards about previsualization here, here, and here.
There is a tutorial here about creating and animating particles.
For a code sample showing how to create and animate a simple particle system, see Lee Stemkoski's tutorial.
Demos used in this lesson:
Varying sizes
Particle people
Firebolt heart
150K particles - there's also a 500k particles version
Jerome Etienne has a quick page of code showing an animated puff of smoke.
This seminal paper on particles is quite readable and goes over the Genesis sequence from Star Trek 2.
See the video linked from this page for some modern, involved particle effects and much more.
Stefan Hedman has a fun little collision detection and constraint solver library that works with three.js, and that were used in this lesson. There's also another nice physics library for three.js, Physijs, with great demos.
Lee Stemkoski has code for detecting the intersection of a block with other blocks. Use the arrow keys and WASD to move the block around.
There's a short tutorial on using ray casting for basic character collision detection.
I maintain an object/object intersection table with pointers to algorithms and books.
The physical simulations shown were done in GlowScript. The car was made with Schteppe's physics library
The Physics-Based Animation site tracks the latest research in the field.
A wide range of presentations about physics and collision detection at interactive rates was part of the Game Developers Conference in 2012.
The videos in this lesson were made by Jos Stam and others working on the Nucleus dynamics solver. You can read about the main idea behind Nucleus here.
The final render of the cloth simulation was by the 3DS MAX team under Neil Hazzard.
For cloth simulation, these course notes by Witkin and Baraff are worth your time.
The demo shown at the end is here.
A performance tip: you can turn on an FPS meter in Chrome to any app, from the debugger.
Texture levels and level of detail are discussed in detail in the books "Level of Detail for 3D Graphics" and "3D Engine Design for Virtual Globes", among others. A free related resource is "Virtual Texturing in Software and Hardware" SIGGRAPH course from 2012.
Quadric Error Metrics is the most common algorithm today for mesh simplification. MeshLab is a free package that implements mesh simplification algorithms and much else.
This is the terrain demo site, wonderfully instructive. The demo itself is here.
This bit of video talks about the advantages of the efficient BufferGeometry class in three.js.
There is another form of culling called occlusion culling. Algorithms based on occlusion culling perform tests to rapidly determine if an object is fully hidden by other objects in the scene. Two articles which discuss GPU-based occlusion culling are available in the free GPU Gems series of books. The articles are here and here. There are many other occlusion techniques, such as this one for globes.
The short demo of Sponza by Florian Boesch shows irradiance volumes, the long demo is from the wonderful ro.me interactive film.
Now what? Plenty. I track and host various resources at our book's site - dig around. I've certainly been blogging about WebGL and three.js.
It's worth visiting this wonderful "Why WebGL?" page for its clever header and the demos. This math visualization page at the same site is lovely.
See Paul Lewis' site for three.js tutorials for more explanation and Lee Stemkoski's tutorial site for code for specific operations.
New demos? Visit webgl.com and learningwebgl.com. This second site also has 16 WebGL lessons.
Mr. Doob & AlteredQualia give a worthwhile talk about three.js, past and future.
Here's three.js's development over a year, in just two minutes. If you want to see your name shoot lasers at three.js, contribute!
Finally, I'm the guy in front of the camera and above the table, but there are many people who worked as hard or harder. First and foremost Gundega Dekena, as well as the video editing team and all Udacity in general, for all their hard work and friendly attitude throughout this arduous and exciting process. Mauricio Vives, Patrick Cozzi, and near the end Branislav Ulicny, aka Altered Qualia, for the truly massive amounts of help in technical reviewing all this material - it honestly wouldn't be half as good without them. Particular thanks to Ricardo Cabello, aka mr.doob, the creator and manager of three.js, for quick and helpful replies to my questions. Beyond those interviewed, I received huge amounts of help from Neil Hazzard, Qilin Ren, Yong Guo, Jos Stam, and dozens more inside Autodesk. Many thanks to all those who let me use their fantastic demos and images in these videos; every person I asked was more than happy to give me permission and answer questions, which is one thing that makes the graphics community great. Finally, thanks to Carl Bass for getting me involved in the first place, Brian Mathews for all the support, and my manager Jean-Luc Corenthin, the rest of my team, and especially my wife Cathy for their patience and understanding.
The idea for this question is from Ronen Barzel, with permission. The slidesets for his graphics course are worth working through.
The image is from the paper "The irradiance volume", by Greger et al., Program of Computer Graphics, Cornell University. This technique has been used in a number of game engines, see here, here, and here.
There is also reverse perspective, which has the peculiar effect of making more distant objects larger.
The idea for this question is from Ronen Barzel, with permission. The slidesets for his graphics course are worth working through if you'd like to learn more than the basics I've covered.
As a little reward, try out some demos by previous students. Some we absolutely love - we'll leave it to you to explore.
If you're inspired, make your own demo! Come up with something great and let me know, then send it on to the three.js people for fame and fortune, or at least fame, of a modest sort. Honestly, it's fun to hack code - jump in!


text:
Marvel, Netflix Debut Free "Jessica Jones" Digital Comic
TV, Digital Comics
Showing results 1-8 of 8
"Guardians of the Galaxy" returns in October and Brian Michael Bendis spoke with CBR about the team's new members and a cosmic landscape in disarray.
Meagan Damore continues to look at the MCU's female protagonists, how their fighting styles reflects their characters and what their futures may hold.
Meagan Damore dissects the fighting styles of the MCU's female protagonists and how it reflects their characters, starting with Black Widow.
In the wake of universe-altering "Secret Wars" news, Axel Alonso helps navigate how the soon-to-be altered Marvel terrain will affect readers.
NYCC's "Women of Marvel" panel was a newsworthy one, with Nicole Perlman announced for "Gamora," and G. Willow Wilson on "X-Men."
The newest "Guardians of the Galaxy" character poster features the best look yet at Zoe Saldana as Gamora, the deadliest woman in the universe.
Doug Zawisza gives "Guardians of the Galaxy Infinite Comic" #3 by Brian Michael Bendis, Mike Del Mundo & Yves Bigarel 4.5 stars, calling it "a well-executed Infinite Comic from Marvel that spectacularly informs the reader of Gamora."
"Avatar" actress Zoe Saldana is currently in talks for to play Gamora in "Guardians of the Galaxy," the female lead of James Gunn's upcoming film and the deadliest woman in the universe.
Archives: All | Comic Books | TV/Film | Video Games | Web Comics

subset: commoncrawl


text:
Please be aware that displayed prices are exclusive of all tax which may be payable in relation to your order. To keep things simple, we'll calculate local taxes and charges at checkout so there are no surprises when your parcel arrives. The currency selector is to be used as a guide only and in all cases you will still be charged in USD.
0 to 0 days
Will be calculated at checkout
Party dresses - Latte
You must select a size
Sleeveless dress with decorative sequins from VERO MODA. Wrap over at the front and hidden zipper at the left side. Lined and has pleats at the skirt portion. Hand washing recommended.
Made of 100% Polyester.
An ambition to create fashionable clothes at a great price brought about the birth of Vero Moda. Today, Vero Moda is one of the biggest European brands for young women. Since 1989, the brand has become synonymous with modern clothes, popular among young women. Vero Moda's range includes stylish tops, leggings, dresses and much more. View the latest from Vero Moda on Nelly....com. Read more
Delivery time: Standard delivery 4-7 working days and Express delivery 1-3 working days. Delivery cost: €5 for Standard and €10 for Express.
What is the bust like in size? :) Thanks in advance.
This dress was gorgeous :):) Highly recommend it.


text:
- Filed Under
Hospice and Palliative Care of the Eastern Shore and Chincoteague National Wildlife Refuge invite the public to join them at 8 a.m. Saturday, Oct. 12, for the fifth annual "Circle of Life" 3.2-mile run and 1-mile walk.
This activity promotes the importance of living well by connecting people with nature during National Wildlife Refuge Week.
"Our family has been connecting to nature at the refuge for more than 50 years," said Bonnie Blueford. "We lost my father to cancer five years ago and he and my mom taught my brother, sister and I how to connect to everything the refuge has to offer." ...


text:
How male and female brains diverge is a hotly debated topic, but the study of model organisms points to differences that cannot be ignored.
The Upside
September 1, 2015|
Researchers explore the benefits of hearing loss and impairment.
September 1, 2015|
Researchers explore the benefits of hearing loss and impairment.
August 1, 2015|
A die-off of newborn lambs in Australia leads to the discovery of a new toxin and clues to a devastating liver disease in children.
August 1, 2015|
Donated organs are helping researchers map out the immune system in humans.
June 1, 2015|
Physical contact helps determine who's present among baboons' gut bacteria.
April 1, 2015|
Fate mapping allows researchers to follow cancer progression from its cell type of origin.
March 1, 2015|
Statisticians who normally crunch numbers to forecast trends in the food-service industry turn their attention to bettering treatment of ALS.
February 1, 2015|
A strain of the dysentery-causing bacterium isolated in 1915 tells the story of a young soldier who died of the disease in the early days of World War I.
December 1, 2014|
The guts of cows and termites harbor microbes that are renowned complex-carbohydrate digesters, but the human gastrointestinal tract has flora that just might measure up.
November 1, 2014|
Pathogen traces recovered from Peruvian mummies suggest tuberculosis-causing bacteria rode from Africa to South America in pinnipeds.
November 1, 2014|
With the iconic Australian marsupial carnivore on the brink of extinction, Tasmanian researchers race to unlock the immunological mysteries of a disease threatening the species.


text:
Flashcard Set Preview
Side ASide B
How many bits make up an IPV6 address?
128 bits
What 2 features are built into IPV6?
Mobile IP & IPSEC
What are the 8 header fields in IPV6?
version, traffic class, flow label, payload length, hop limit, next header, source address, destination address
What is zero compression and what is a major restriction when using this?
Consecutive fields of zeroes in an IPV6 address can be expressed with two colons. Zero compression can only be used once in a single address.
What is leading zero compression?
Leading zeros in any 16-bit field can be dropped, but each block where the leading zeros were dropped must have at least one remaining number, even if it is zero.
What is the format of an IPV6 address?
8 sets of 16 bits (4 hex digits) separated by colons. 1234:0000:5678:0000:9ABC:0000:DEFF:0000
Name the IPV6 address types.
1. aggregateable global unicast address, 2. Site-Local address, 3. Link-Local address, 4. multicast address, 5. anycast address
Describe aggregateable global unicast addresses.
Equivalent to the IPV4 public address. They are fully routable and are used for Internet access. Aggregateable refers to the ability to summarize these addresses to make routing...
Describe Site-Local addresses.
Equivalent to the IPV4 private address classes. Hosts using these address can communicate with each other thoughout the site, but are not able to reach Internet or remote hosts.
Describe Link-Local addresses.
Smaller in scope than Site-Local. These addresses are local to a physical link. Link-Local is not used at all in forwarding data.
What is IPV6's equivalent to ARP?
Neighbor Discovery Protocol (NDP)
What are the identification traits of the following address types: global, multicast, Site-Local, Link-Local, & IPV4 equivalent?
These addresses are identified by their initial bits. 001 - Global, FF - Multicast, FEC - Site-Local, FE8 - Link-Local, ::x.x.x.x or 0:0:0:0:0:0:x.x.x.x - IPv4 equivalent...
What is the IPV6 loopback address?
0:0:0:0:0:0:0:1 or ::1
What is the IPV6 unspecified address?
It is all zeros or ::/128 and is used to represent an unkown address.
What is the IPV6 equivalent to a subnet?
Site-Level Aggregator (SLA)
What is an anycast address?
An anycast address is assigned to multiple interfaces and is delivered to the closest host that shares that address. Hosts that share an anycast address are members of the anycast...
How is the closest anycast member determined?
On a LAN, the closest member is the first one that was learned. On a WAN, the closest member is determined by the routing protocol metric.
What is the IPV6 equivalent to DHCP?
What are the 2 main types of autoconfiguration?
stateless and stateful
What is stateful autoconfiguration?
The IPV6 host obtains it's address and other information from a server. It isDHCPV6.
How does a host use stateless autoconfiguration to obtain an IPV6 address?
1. Host creates link-local address, 2 Host performs Duplicate Address Detection (DAD), 3. If no duplicate address, Host sends a Router Solicitation (RS), 4. Host receives...
What is the Duplicate Address Detection process?
1. Host sends out a Neighbor Solicitation (NS) message, 2 If host receives a Neighbor Advertisement (RA), then there is another host with the same address and the host that sent...
What is the destination address of a Neighbor Solicitation (NS) message?
FF02::1, which is the "all-nodes" multicast address.
What is the destination address of a Router Solicitation (RS) message?
FF02::2, which is the "all-routers" multicast address.
What is the actual name of RIP for IPV6?
RIPng (new generation)
What is the name of OSPF for IPV6?
OSPFv3 (defined in RFC2740)
What is the name of BGP for IPV6?
Multiprotocol BGPv4 or simply MPBGP
How is IPV6 routing capabilities enabled on a Cisco router?
R1(config)# ipv6 unicast-routing
Name 1 major difference between OSPFv2 and v3.
In IPV6, OSPF is not started with router ospf. OSPFv3 is enabled on a per-interface basis, which automatically creates a routing process.
How is an OSPFv3 process created?
At the interface level as follows: R1(config-if)# ipv6 ospf area <number>
How is the router ID (RID) determined for OSPFv3?
OSPFv3 uses the exact same rules as v2 to determine the local router's RID. Plus, OSPFv3 will use an IPV4 address as the RID. If there is no IPV4 address configured, then...
What is the OSPFv3 address for hello packets?
What are the initial commands for configuring OSPFv3?
R1(config)# ipv6 unicast-routing R1(config)# ipv6 cef R1(config)# ipv6 router ospf 1 R1(config-rtr)#
How is the RID configured for OSPFv3?
R1(config) # ipv6 router ospf R1(config-rtr)# router-id
How are OSPFv3 areas configured?
R1(config-rtr)# int fast 0/1 R1(config-if)# ipv6 ospf 1 area 0
What command is used to show OSPFv3 adjacencies?
R1# show ipv6 ospf neighbor
Which show command is used to display the link-local address?
R1# show ipv6 ospf interface fast 0/1
What is the OSPFv3 equavalent to the v2 clear ip ospf process?
R1# clear IPV6 ospf process
What are the OSPFv3 equivalent to the following commands: show ip route & show ip interface
R1# show ipv6 route R1# show ipv6 interface
What is the rule for rolling out IPV6?
Start at the network edge and work your way toward the core.
What are 3 solutions for transitioning from IPv4 to IPv6?
1. use of a dual IP stacks, 2. 6-to-4 tunneling, 3. NAT- Protocol Translation (NAT-PT).
Name 3 advantages of IPv6 over IPv4.
Larger address space, simpler header, support for IPSec on every link.
Why is NAT not a requirement for IPv6?
IPv6 allows all users in an enterprise to have a global address.
Which address type from IPv4 was eliminated from IPv6?
How does IPv6 create the EUI-64 address in the system ID for stateless autoconfiguration used by Cisco?
It expands the 48-bit MAC address to 64 bits by inserting FFFE into the middle 16 bits.
In a dual stack environment, what part of the packet is used to determine which stack wil be utilized?
Destination address
In a dual stack environment, which function calls are replaced by a new API?
gethostbyname & gethostbyaddr


text:
Discussion Topics
Last Post
Spirit to Air NZOct 12, 20151Hi! I have a flight through Spirit Airlines landing at 7:30pm and a connecting flight to Auckland leaving at 9:45pm with Air New Zealand. Check in closes at 8:15. Is 45 minutes long enough to get my bag and go to the next terminal?MJBMon, Oct 12
WALKING TIMEOct 12, 20151I need to know how long it will take me to walk from terminal 2 to reconnect with my flight to PORTLAND at terminal 6MAFMon, Oct 12
Flight connectionOct 12, 20151Hi, I land at 6:30am on an international flight with United, I have a flight at 8:40am with delta. Is this enough time to catch my second flight?AustravelerSun, Oct 11
Transferring from aeromexico to china easternOct 11, 20151Hi, I will be landing in LAX at 0907am by aeromexico and have a connecting china eastern airline flight to catch at 1130am. Would there be enough time for me to make the transfer? Thanks!tommySun, Oct 11
Transferring from Alaska to AmericanOct 11, 20151Hi, I have a 75 minute connection from my Alaska airlines flight to American Airlines flight. Is this sufficient time?DeanoGSat, Oct 10
MCO to LAX to SYD with DeltaOct 10, 20152I land in LAX at 8:40p and LAX to SYD leaves at 10:26p Its all 1 ticket with Delta. Is that same terminal connection/is passport control there?airportmanSat, Oct 10
walking from Terminal B to terminal 4 - how long is itOct 10, 20151My family is coming from HKG via Cathey and land in terminal B, the connection flight is in terminal 4. what is the transfer mode and they have 3 hrs time. Will that be sufficient to complete Immigration, customs and come to terminal 4? pls helpjmahekSat, Oct 10
Arrive Terminal B by AA, my wife arrives terminal B by China airlineOct 10, 20151I arrive LAX Terminal B by AA from London, and my wife arrives Terminal B by china airline. Can I walk over to help her to get the luggages? is it possible?TomFri, Oct 9
enough time?Oct 9, 20151We land in LAX at 6am on a QANTAS flight from Australia then have to collect bags, clear customs and check in on an Alaskan air flight to Puerto Vallarta, is 4 hours enough time?LouFri, Oct 9
United connectionOct 8, 20151Coming home from Maui we arrive at 4:50 am on a United flight and connect to another United flight , assuming United express that departs at 6 am. Am concerned about one hour connection.....traveling with a seasoned 6 year old traveler. Will we be okay?scorThu, Oct 8
New Zealand to Washington DCOct 7, 20151We arrive from New Zealand at 10:45 am. Will we have enough time to board a flight to Washington DC leaving at 1:15 pm?HoolWed, Oct 7
Luggage Transfer LAXOct 7, 20151Hi, I am thinking about flying from Fairbank (FAI) to Sydney (SYD) via LAX. All trips are with Delta/Virgin. Can my luggage be checked through at FAI? If so, this will be good as I hope to spend sometime in LA during the long layover, without having to recheck luggage at LAX.tdWed, Oct 7
Customs Terminal 6Oct 6, 20151Arriving on AS at 6p from ZIH. Have to connect to AA to SFO at 7:15/ Do I need to go through Security at AA again. I have Global Entry and Carryon only. Is this enough time?rob415Tue, Oct 6
time between terminal 4 and 5Oct 6, 20151I arrive with my family at LAX at 9:25 a.m. on American Airlines (Terminal 4) Jan 27, Wednesday, from Miami. I have to get to United (Terminal 5) flying to San Francisco at 11:00 a.m.. Will I make it? Thank you.ttourinhoMon, Oct 5
connect between terminal 8 and terminal 2 LAXOct 5, 20151on a single Business Class ticket, I arrive on SKYWEST (United) terminal 8 at 3:34 pm and depart on Air Canada terminal 2 at 4:50. How long is the walk between terminals and TSA security?tjkMon, Oct 5


text:
Amazon Price
|New from
|Used from
Kindle Edition
"Please retry"
"Please retry"
"Please retry"
Mass Market Paperback
"Please retry"
Audio CD, Abridged, Audiobook
"Please retry"
No Kindle device required. Download one of the Free Kindle apps to start reading Kindle books on your smartphone, tablet, and computer.
To get the free app, enter your e-mail address or mobile phone number.
Product Details
Would you like to update product info or give feedback on images?
There's not a shot fired until page 602 in Clancy's lumbering new thriller, and readers up on their history will know the outcome of that shot on page 17. What comes in between is a slow-moving but, given Clancy's astonishing flair for fly-on-the-wall writing, steadily absorbing imagining of the back story behind Mehmet Ali Agca's (real-life) failed attempt on the life of Pope John II in 1981. By going back 21 years, Clancy provides a fresh adventure for a young Jack Ryan, but Ryan fans (and presumably Ben Affleck) may be surprised to learn that Ryan is, until the final scenes, only a supporting player here. The book's main heroes are the husband-and-wife team of Ed Foley, CIA station chief in Moscow, and his agent-wife, Mary Pat, and Oleg Zaitzev (code-named Rabbit), the mid-level employee in the KGB communications department who for conscience's sake decides to defect to America when he's asked to encrypt messages that reveal a plot, under the auspices of then-KGB chief Yuri Andropov, to kill the pope in response to the pontiff's secret letter threatening to resign the papacy and to return to Poland to resist Soviet domination. In real life, the pope wrote such a letter, and analysts have long speculated that the Soviets, via Bulgarian controllers, dispatched Agca to kill him. It's utterly fascinating to read Clancy's playing out of that likely scenario is there a writer in the world who brings so much verisimilitude to scenes both high (Politburo meetings) and low (details of spy craft and everyday Soviet life)? But while Clancy delivers a believable and encyclopedic version of real-life events, the suspense is minimal a disappointment when other writers (Forsyth in Day of the Jackal, for one) have shown that there can be enough tension in a fated-to-fail assassination plot to give a stroke to a yoga master.
Copyright 2002 Cahners Business Information, Inc.
Clancy returns to Jack Ryan's first days in the CIA, when the fate of the free world hung in the balance as Ryan discovered a heinous plot to assassinate the Pope. Clancy is so big that this new novel merits a special limited edition (ISBN 0-399-14914-7. $150).
Copyright 2002 Reed Business Information, Inc.
More than half the book consists of characters "inner monologs" most of which run around the same little circle over and over and over. Read morePublished 14 months ago by Edward
I wouldn't buy them if I didn't want them. Always good. Especially these authors. I need to add more words so. There.Published 16 months ago by Paul Mayall
Good book, but kind of draggy in spots....seems to have lots of filler.
Not in the league of Patriot Games or Red October. Read more
I really enjoyed reading this. People read Tom Clancy for the entertaining / captivating plot. This book definitely has it. Read morePublished on Nov. 22 2010 by Paul
I recently finished Red Rabbit and was mildly disappointed. A great concept and idea for a story line. The time period is interesting and I enjoyed that portion of the story. Read morePublished on Oct. 27 2004 by Christopher
I've read all of Clancy's books, while most I find it takes a while to get into the story but generally once it has picked up it was a very good read. Read morePublished on Sept. 26 2004 by Randall Duhamel
This book takes places as a young Jack Ryan and really explains more on Jack Ryan's wife Cathy. I really liked how clancy put the suspense in this book, but certain parts of this... Read morePublished on July 17 2004 by russell guerra
Half-a-star, but that option doesn't exist.
For anyone who is a fan of the character Jack Ryan, and to a degree Clancy's writing, this book will be an incredible let down. Read more
I have been a fan of Tom Clancy and Jack Ryan since I first read Red October. I am not convinced that Clancy really wrote this book by himself. Read morePublished on June 28 2004 by Joe Burton


text:
Tod's boxy 'D-Cube Bauletto' tote is cut from softly structured black leather. The adjustable shoulder strap can be attached to the sides or the concealed D-rings at the front and back. This roomy accessory has plenty of space to fit your cosmetics case, an e-reader and even a spare pair of flats.
HandmadeBlack leather (Calf)Two top handles, detachable adjustable shoulder strapPiping, gold hardware, feetInternal zipped pocketFully lined in black satinZip fastening along top
Product code: 432331 - Need help? Contact us


text:
Credits & Info
- Uploaded
- Sep 28, 2012 | 4:27 PM EDT
- Weekly Users' Choice October 3, 2012
- Daily Feature September 30, 2012
If you liked this, check these out!
Plenty more like this here!
Author Comments
Rated 3.5 / 5 stars
LOL, iron golem smah
and when fart says snake is dead I saw him run by the window, so he was prved wrong in a second
Rated 5 / 5 stars
Been watching since episode 1 all day. keep it up!
Rated 5 / 5 stars
Your best one yet. The Troll 2 reference ("you can't piss on hospitality, I won't allow it!") and the weird final line from Steambath will keep me watching. Thank you for making this.
Rated 5 / 5 stars
WHAT THE HELL NPC VILLAGERS THEY SAVED YOUR LIFE AND YOU WANT TO PERISH THEM WITH A IRON GOLEM YOUR SOOO INSANE NPC VILlAGERS!(But Still Like it thou)
Rated 5 / 5 stars
funny as and wtf villagers they saved your life and made you a wall and iron golem and you saying get them to the iron golem wtf


text:
Send Janet a message explaining your needs and you will receive a response by email. Have you already emailed Janet or another tutor? If so, you have an account! Sign in now
If you select this option, WyzAnt will ask interested tutors to contact you by email if they are able to help. A maximum of five different tutors will email you and none of your personal information, including your email address, will be released.
Wheaton College, Norton, MA
Columbia University - Teachers College (Master's)
My method is student focused. This individualized approach tailors motivation and instruction. I have found that students are and feel more empowered and responsible for their progress and achievements. The student's personal strengths, goals and aspirations shape the tutoring. Together, we design, evaluate, and reshape our work as needed to reach identified goals and the steps along the way. Students truly recognize and own their learning process. This evolving self-motivation makes learning more enjoyable and effective. It is gratifying for both of us.
Currently, I volunteer at Read Santa Clara as a literacy tutor for adults. It is a joy to positively affect a learner's achievements and learning process.
I draw on my depth of experience professionally and personally, continuing to mine, discover and create effective connections and methods that contribute to students' success.
Academic background: Wheaton College in Norton, Massachusetts - B.A. in history. Columbia University Teachers' College in New York City, New York - M.A.T. in secondary level Social Studies.
After teaching in Junior and Senior High School in the New York area, I moved to California, where I hold a permanent teaching credential.
Professional work in California (past to present): Emporium-Capwell Company (Training Director, Assistant Buyer, Department Manager), City of Palo Alto Utilities Department (Energy Conservation Manager, writer of nationally distributed program handbook), Usr/Group (Administrator for software association), Semiconductor Industry Association (Meeting Planner, Executive Assistant), Watkins-Johnson (Executive Assistant), Symantec (Executive Assistant), WATCH-Women's and Their Children's Housing and HOMESAFE - collaborative of 7 nonprofits serving families of domestic violence - (Development Officer and Campaign Coordinator), Center for Excellence in Nonprofits (Development Assistant), Second Harvest Food Bank (Development), Pacific Art League (Development Consultant), The Family Giving Tree (Development Director), Freelance Development consultant and grant writer.
Volunteer work (past to present): Palo Alto Parents' Nursery School (President and Fundraiser), Palo Alto PTA Board (Environmental Chair), Diabetes Society of Santa Clara Valley (Development), KARA (Development), Abilities United (Marketing Outreach for Art Program), Read Santa Clara (Tutor - Adult Literacy).
Relevant skills I have learned and apply to tutoring success: Teaching and Tutoring, Mentoring and Coaching, Communication and Presentation, Research, Reading, Writing, Editing, Organization and Planning, Management.
My personal goal is draw on my gifts, experience and learning to draw out and teach students to learn, achieve, recognize and apply their own talents.
My rate for one student/hour is $40 and for two students/hour $50. Style:
My method is student focused. This individualized approach tailors motivation and instruction. I have found that students are and feel more empowered and responsible for their progress and achievements. The student's personal strengths, goals and aspirations shape the tutoring. Together, we design, evaluate, and reshape our work
Approved subjects are in bold.
In most cases, tutors gain approval in a subject by passing a proficiency exam. For some subject areas, like music and art, tutors submit written requests to demonstrate their proficiency to potential students. If a tutor is interested but not yet approved in a subject, the subject will appear in non-bold font. Tutors need to be approved in a subject prior to beginning lessons.
I am an experienced tutor in English - reading, writing, comprehension, study skills and presentation.
I hold a Masters in Teaching from Teachers College Columbia University. Please refer to my profile for more details.
I am an experienced English tutor specializing in reading, writing and oral communication. I have also been a writer and editor as well as an avid reader who appreciates good writing.
I have taken classes in communications, presentation skills and public speaking and practiced these skills for many years. Practice of a person's strengths as well as practice of new skills strengthens the effectiveness of public speaking. This confidence and comfort plus focus and knowledge of the subject make it possible to speak with ease and win over an audience.
Appropriately "owning" the interaction from the start makes a great difference even before speaking. Listening is essential. Well received, clear and focused interactions make the difference and prepare the groundwork for a continued relationship. Knowing yourself, your purpose and the audience and its purpose is powerful.
I am currently a literacy tutor at the Santa Clara Library, teaching reading, writing, spelling, communication and presentation skills.
I hold a Masters in Teaching from Teachers College Columbia University and am a former teacher.
Teaching study skills draws upon my ability to organize, think clearly, focus on outcomes, develop strategy and tactics, and measurement of goals. The student is involved, with my guidance, to develop his/her own plan and be responsible, with my coaching, to achieve it.
I am an experienced teacher and tutor, and I hold a Masters in Teaching from Teachers College Columbia.
I am presently tutoring a student in writing and editing his work. My experience includes writing and editing newsletters and other documents. I approach this by focusing on the purpose of the writer, engaging the reader's attention, clearly presenting the substance and as appropriate, the significance or impact the writer intends. It is important that the reader is drawn in, clearly and easily understands what is written, values it, and takes away the writer's message.
Janet K. has not yet had a background check. After sending a message to Janet, you will be able to order a background check for $7.99. The check will be processed by First Advantage. For more information, please review the background check information page.
As part of your tutor selection process, we encourage you to run updated background checks. Please also review the safety tips for hiring tutors.


text:
Young studs Cole Gartner And Hayden Wolfe suck and swap cum at College Dudes!
More Galleries from College Dudes Click to see all 1203 Galleries
There are 2 comments on this gallery
alliepocket December 13, 2010 - 02:57:01 (See all My Comments)
i love seeing hayden's thick cock. certainly my fave in collegedudes247.Reply
windsors November 30, 2010 - 19:36:49 (See all My Comments)
I love the curly headed guy. WOOFReply


text:
ANN ARBOR, Mich.---When paleontologist Iyad Zalmout went looking for fossil whales and dinosaurs in Saudi Arabia, he never expected to come face-to-face with a significant, early primate fossil.
But the skull he stumbled upon provides new insights into what the last common ancestor of apes and monkeys may have looked like and when the two lineages went their separate ways.
Zalmout and colleagues at the University of Michigan and the Saudi Geological Survey describe and interpret the fossil in a paper published online July 15 in the journal Nature.
It is well known that Old World monkeys and apes share ancestry, but exactly when the two branches split from the common trunk has been unclear. Debates also have swirled around the question of what sort of facial structure the progenitor of apes and monkeys had.
Both lineages belong to the primate group known as catarrhines. The earliest catarrhines in the fossil record, creatures that were neither monkey nor ape, date back to the late Eocene to early Oligocene epochs, 35 to 30 million years ago. Later fossils, from around 23 million years ago, suggest the split had already occurred by that time. But few fossil catarrhines from the interval between 30 million to 23 million years ago have been found, making it difficult for scientists to know precisely when monkeys and apes became distinctly separate groups and what catarrhines looked like around the time of the split.
The new fossil catarrhine, Saadanius hijazensis, dates from 29 million to 28 million years ago and lacks the specialized features that distinguish modern apes and Old World monkeys, suggesting that the split had not yet occurred. The researchers' analysis of the fossil leads them to believe its physical features are much like those of the last common ancestor of Old World monkeys and apes.
Zalmout, a postdoctoral fellow working with U-M paleontologist Philip Gingerich, found the fossil in
|Contact: Nancy Ross-Flanigan
University of Michigan


text:
Pie Gallery
Pie Sisters Sponsor "Cancer Prevention and Treatment 5K"
September 22, 2012
The Pie Sisters are proud to support the 4th Annual Cancer Prevention and Treatment 5K! The
Cancer Prevention and Treatment Fund
is dedicated to improving the health of adults and children every day. They carefully analyze research by scientists around the world to determine the best strategies for preventing and treating cancer. Their cancer hotline provides free help to everyone who contacts them. They have been designated as one of America's Best Charities by Independent Charities of America!
Join us on the Georgetown waterfront, Sunday, September 23rd!
4th Annual Cancer Prevention & Treatment 5K
September 23, 2012
10:00 a.m.
C&O Canal Trail at the Key Bridge
Washington, DC
Pie Sisters Sponsor "A Winter Affair"
December 21, 2011
The Pie Sisters are proud to annouce that we have accepted the role of official dessert sponsor for "A WINN-ter Affair," which benefits
The Children's Inn at NIH
. Established in 1990 and located in Bethesda, MD, The Children's Inn is a special place for pediatric patients and their families who have come from all over to receive care from National Institutes of Health (NIH), the world's premier biomedical research facility. Much more than a hotel room, the inn has provided a relaxing atmosphere for over 10,000 seriously ill children and their families when they need it most.
Don't miss this fun night of cocktails, hors d'oeuvres, and dancing with live music by The Winn Brothers Band! Party the night away with fellow Young Ambassadors and friends of The Inn to celebrate the first year of the Young Ambassadors Council and to raise needed funds to support The Inn's mission and programs. To purchase tickets
click here
. For more information, visit our
Young Ambassadors page.
February 25, 2012
8:00 p.m. - Midnight
House of Sweden
2900 K Street, NW
Washington, DC 20007
© 2015 The Pie Sisters.
Pie Sisters is Now Open!
New Spring/Summer Hours:
11am - 7pm, Sunday and Wednesday
11am - 9pm, Thursday - Saturday
Closed Monday and Tuesday
For catering orders and gift cards, please contact us anytime.


text:
"Killer B"; Biggio Raps With The Odd Couple
As heard on the Odd Couple July 12, 2011 8:39 PM
The Odd Couple Read More
Craig calls in to talk to "The Slightly Less Odd Couple" as guest host Joe O'Donnell joins Shaun in studio. Biggio gives his take on whether or not he will be apart of the Astro's organization in the future, as well as his thoughts on Derek Jeter and the All-Star game.
Craig Biggio interview
Mobile device users may click here to listen to the audio.