Platform
Resources
Pricing
Sign in
Get started
yalmar
Workspace
Fork
Published
By
yalmar
Edited
Sep 4, 2020
1 star
Insert cell
md
`# OpenGL Triangle`
Insert cell
canvas
=
html
`<canvas width=640 height=480>`
Insert cell
md
`**The PicoGL library**`
Insert cell
picogl
=
require
(
'picogl@0.17.3/build/picogl.min.js'
)
Insert cell
app
=
picogl
.
createApp
(
canvas
)
.
clearColor
(
0
,
0
,
0
,
1
)
;
Insert cell
vertexShader
=
`#version 300 es
layout(location=0) in vec4 position;
layout(location=1) in vec3 color;
out vec3 vColor;
void main() {
vColor = color;
gl_Position = position;
}`
Insert cell
fragShader
=
`#version 300 es
precision highp float;
in vec3 vColor;
out vec4 fragColor;
void main() {
fragColor = vec4(vColor, 1.0);
}`
Insert cell
program
=
app
.
createProgram
(
vertexShader
,
fragShader
)
Insert cell
positions
=
app
.
createVertexBuffer
(
picogl
.
FLOAT
,
2
,
new
Float32Array
(
[
-
0.5
,
-
0.5
,
0.5
,
-
0.5
,
0.0
,
0.5
]
)
)
Insert cell
colors
=
app
.
createVertexBuffer
(
picogl
.
FLOAT
,
3
,
new
Float32Array
(
[
1.0
,
0.0
,
0.0
,
0.0
,
1.0
,
0.0
,
0.0
,
0.0
,
1.0
]
)
)
Insert cell
triangleArray
=
app
.
createVertexArray
(
)
.
vertexAttributeBuffer
(
0
,
positions
)
.
vertexAttributeBuffer
(
1
,
colors
)
Insert cell
drawCall
=
app
.
createDrawCall
(
program
,
triangleArray
)
Insert cell
draw
=
{
app
.
clear
(
)
;
drawCall
.
draw
(
)
;
}
Insert cell
Purpose-built for displays of data
Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Try it for free
Learn more
Fork
View
Export
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
canvas
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
Add comment
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
picogl
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
app
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
vertexShader
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
fragShader
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
program
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
positions
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
colors
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
triangleArray
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
drawCall
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML
draw
Add comment
Copy import
Select
Duplicate
Copy link
Embed
Delete
JavaScript
Markdown
HTML