{"id":21020182,"url":"https://github.com/bringhurst/webgl-presentation","last_synced_at":"2026-03-15T20:45:25.701Z","repository":{"id":137019174,"uuid":"743668","full_name":"bringhurst/WebGL-Presentation","owner":"bringhurst","description":"A presentation on webgl that I'm working on","archived":false,"fork":false,"pushed_at":"2010-09-22T18:49:38.000Z","size":396,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-20T12:46:10.537Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bringhurst.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2010-06-27T19:42:05.000Z","updated_at":"2013-12-06T06:21:02.000Z","dependencies_parsed_at":"2023-04-01T10:08:01.453Z","dependency_job_id":null,"html_url":"https://github.com/bringhurst/WebGL-Presentation","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bringhurst%2FWebGL-Presentation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bringhurst%2FWebGL-Presentation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bringhurst%2FWebGL-Presentation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bringhurst%2FWebGL-Presentation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bringhurst","download_url":"https://codeload.github.com/bringhurst/WebGL-Presentation/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243447641,"owners_count":20292455,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-19T10:36:04.680Z","updated_at":"2025-12-28T00:24:02.799Z","avatar_url":"https://github.com/bringhurst.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"WebGL Crash Course\n- Go to http://github.com/fintler/WebGL-Presentation for code.\n\nWho are you?\n- Someone who's comfortable with JavaScript and C.\n- Someone who knows the basics of matrices and vectors.\n\nWho am I?\n- Someone who barely knows anything about WebGL and OpenGL.\n- Someone who is probably going to tell you at least one incorrect thing today.\n- Jon Bringhurst \u003cjon@bringhurst.org\u003e\n\nWhat is OpenGL?\n- Open Graphics Library.\n- So you can write code that runs on different video cards.\n- The program you write is a \"client\", the video card is a \"server\".\n- To help you fight with matrix math.\n\nWhat is OpenGL ES?\n- Open Graphics Library for Embedded Systems.\n- The best or most useful parts of the full OpenGL spec.\n- Generally only one way to do everything.\n\nWhat is WebGL?\n- The JavaScript way to use OpenGL ES (2.0).\n- Uses the webgl context of a \u003ccanvas\u003e element.\n- Awesome.\n\nHigh level -- how to use WebGL?\n- Do the following in order from 1 to 6.\n  - Step 1: Create and setup two programs that run on the video card.\n  - Step 2: Send camera information to the first program (vertex shader).\n  - Step 3: Send shape (vertex) information to the first program.\n  - Step 4: Send color (fragment) information to the second program.\n  - Step 5: Tell the video card to draw the stuff you sent it.\n  - Step 6: Go to step 1.\n\nPrograms that run on the video card?\n- Called \"shaders\".\n- We only worry about \"vertex\" (points in 3d space) and \"fragment\" (color).\n- Written in a C-like language known as GLSL.\n- Write your shader in a \u003cscript\u003e tag, then get it with innerHTML or whatever.\n\nCompile and send it to the video card.\n- Compile example.\n- Send to video card example.\n\nSend camera information.\n- Send camera information example.\n\nSend shape information.\n- Send shape information example.\n\nRasterization\n- Linear interpolation between vertices to create fragments.\n- The invisible step between your vertex and fragment shader.\n\nSend color information\n- Send color information example.\n\nOverview of the pipeline\n- All of the stuff that happens behind the scenes.\n- Important to know, but only after you get the basics down.\n\nNow tell the video card to run through the pipeline\n- Example of drawing.\n- Show the output.\n\nUseful links and libraries\n- WebGLU.\n- \"Learning WebGL\" series.\n\nEnd\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbringhurst%2Fwebgl-presentation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbringhurst%2Fwebgl-presentation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbringhurst%2Fwebgl-presentation/lists"}