CS410 Software Engineering
Real Projects. Real Impact. Real kills.
Software Development Life Cycle
Prototyping + Scrum + Agile + DevOps
Python and C++ (w/ Cython)
Git + Docker Containers
Applied Deep Learning
Guest Speakers
Dan Ginsburg
11 / 20
Vulkan, OpenGL, and OpenGL ES renderers for the Source 2 engine used by games such as Dota 2, Artifact, and Dota Underlords
Critical Thinking in Cybersecurity
11 / 20
Kristin Dahl
11 am
Kristin is a cyber security consultant with IBM X-Force IRIS and former research staff member at MIT Lincoln Laboratory
Assignment 7
Due 11/11
Quiz Today!!
Assignment 8
coming very soon!!
Due 11/15
Normals
V4
V6
V5
(x, y, z)
(x, y, z)
(x, y, z)
Face
N4 (x, y, z)
V1
V3
(x, y, z)
(x, y, z)
(x, y, z)
Vertex
/ Vertices
Face
N1 (x, y, z)
N2 (x, y, z)
N3 (x, y, z)
Vertex Normals
Face Normals
used for Material
used for Lighting
used for Shading
V1
V2
V3
Bump Map
Normals
Pixel
Mesh File Formats
GLTF
.gltf
.glb
STL
OBJ
PLY
Collada
.dae
.stl
.ply
.obj
And more:
Let's make an OBJ file
v 0 0 0
v 0 10 0
v 10 0 0
v 0 0 10
f 1 2 3
f 1 2 4
f 1 4 3
f 2 4 3
var loader = new THREE.PLYLoader();
loader.load('beethoven.ply', function (geometry) {
geometry.computeVertexNormals();
var material = new THREE.MeshStandardMaterial( {
color: 'red'
} );
scene.add( new THREE.Mesh( geometry, material ) );
} );
var loader = new THREE.PLYLoader();
loader.load('beethoven.ply', function (geometry) {
geometry.computeVertexNormals();
var material = new THREE.MeshStandardMaterial( {
color: 'red'
} );
scene.add( new THREE.Mesh( geometry, material ) );
} );
Constructive Solid Geometry
Materials
Mesh
Geometry
+ Material
Light Simulations
N (x, y, z)
Material
Scattering
controls the physical appearance
magic mode uses (x, y, z) as color
Physically Based Rendering
Shiny with highlights
Non-Shiny without highlights
roughness 0 .. 1
metalness 0 .. 1
THREE.MeshStandardMaterial
roughness 0 .. 1
metalness 0 .. 1
THREE.MeshStandardMaterial