Daniel Haehn PRO
Hi, I am a biomedical imaging and visualization researcher who investigates how computational methods can accelerate biological and medical research.
Dan Ginsburg
Vulkan, OpenGL, and OpenGL ES renderers for the Source 2 engine used by games such as Dota 2, Artifact, and Dota Underlords
10 out of 40
To go...
F 11/17 Volume Rendering
M 11/20 Atacama.bio Guest Lecture
W 11/22 WebGPU
F 11/24 No class (Thanksgiving Recess)
M 11/27 Final Project Fast Forward (60 seconds each!)
W 11/29 Field Trip / Outside Lecture
F 12/01 glTF / WebGPU II
M 12/04 Final Project Presentations I
W 12/06 Final Project Presentations II
F 12/08 Skybox
M 12/11 Final Project Presentations III
W 12/13 Final Recap and Last Lecture!
F 12/22 Final Project Submission
Fieldtrip!
11 / 29
+
3D model
Assignment 5
Bonus
Due Tonight!
For real!
Light Simulations
N (x, y, z)
Material
Scattering
controls the physical appearance
+ Light
Physically Based Rendering
Shadowing
Shading
Two things control the color of an object
Material
Light
+
Color
Direction
Color
Orientation
Reflections
var color = 0xFFFFFF;
var intensity = 1;
var light = new THREE.AmbientLight(color, intensity);
scene.add(light);
var skyColor = 0xB1E1FF; // light blue
var groundColor = 0xB97A20; // brownish orange
var intensity = 1;
var light = new THREE.HemisphereLight(skyColor, groundColor, intensity);
scene.add(light);
var color = 0xFFFFFF;
var intensity = 1;
var light = new THREE.DirectionalLight(color, intensity);
light.position.set(0, 10, 0);
light.target.position.set(-5, 0, 0);
scene.add(light);
scene.add(light.target);
var color = 0xFFFFFF;
var intensity = 1;
var light = new THREE.DirectionalLight(color, intensity);
light.position.set(0, 10, 0);
light.target.position.set(-5, 0, 0);
scene.add(light);
scene.add(light.target);
var helper = new THREE.DirectionalLightHelper(light);
scene.add(helper);
var color = 0xFFFFFF;
var intensity = 1;
var light = new THREE.PointLight(color, intensity);
light.position.set(0, 10, 0);
scene.add(light);
//...
gui.add(light, 'distance', 0, 40)
var color = 0xFFFFFF;
var intensity = 1;
var light = new THREE.SpotLight(color, intensity);
light.position.set(0, 10, 0);
light.target.position.set(-5, 0, 0);
scene.add(light);
scene.add(light.target);
//...
gui.add(new DegRadHelper(light, 'angle'), 'value', 0, 90).name('angle');
var color = 0xFFFFFF;
var intensity = 5;
var width = 12;
var height = 4;
var light = new THREE.RectAreaLight(color, intensity, width, height);
light.position.set(0, 10, 0);
light.rotation.x = THREE.Math.degToRad(-90);
scene.add(light);
This was shading.
What about shadows?!
Depth Testing / z-Buffer
Depth Testing first to skip
invisible objects in the fragment shader
Anti-Aliasing
Do people use super sampling?
Final Project!
counts as 40% of your grade!
#finalproject
submit your music
By Daniel Haehn
Hi, I am a biomedical imaging and visualization researcher who investigates how computational methods can accelerate biological and medical research.