Security News
NIST Misses 2024 Deadline to Clear NVD Backlog
NIST has failed to meet its self-imposed deadline of clearing the NVD's backlog by the end of the fiscal year. Meanwhile, CVE's awaiting analysis have increased by 33% since June.
@luma.gl/webgl
Advanced tools
@luma.gl/webgl is a WebGL framework that provides a set of tools and utilities for working with WebGL. It is designed to simplify the process of creating high-performance 3D graphics applications in the browser. The package offers a range of features including context creation, shader management, buffer handling, and more.
Context Creation
This feature allows you to create a WebGL context, which is the starting point for any WebGL application. The code sample demonstrates how to create a WebGL context using a canvas element.
const {createGLContext} = require('@luma.gl/webgl');
const canvas = document.createElement('canvas');
const gl = createGLContext({canvas});
Shader Management
This feature provides utilities for managing shaders, which are essential for rendering graphics in WebGL. The code sample shows how to create vertex and fragment shaders using the @luma.gl/webgl package.
const {Shader} = require('@luma.gl/webgl');
const vertexShaderSource = `
attribute vec4 position;
void main() {
gl_Position = position;
}
`;
const fragmentShaderSource = `
void main() {
gl_FragColor = vec4(1, 0, 0, 1);
}
`;
const vertexShader = new Shader(gl, {source: vertexShaderSource, shaderType: gl.VERTEX_SHADER});
const fragmentShader = new Shader(gl, {source: fragmentShaderSource, shaderType: gl.FRAGMENT_SHADER});
Buffer Handling
This feature allows you to create and manage buffers, which are used to store vertex data. The code sample demonstrates how to create a buffer and upload vertex positions to it.
const {Buffer} = require('@luma.gl/webgl');
const positions = new Float32Array([
-1, -1,
1, -1,
-1, 1,
1, 1
]);
const positionBuffer = new Buffer(gl, {data: positions});
Three.js is a popular JavaScript library for creating 3D graphics in the browser. It provides a higher-level API compared to @luma.gl/webgl, making it easier to create complex 3D scenes with less code. However, it may offer less control over low-level WebGL operations.
Babylon.js is another powerful 3D engine for the web. It offers a comprehensive set of features for creating 3D games and applications, including physics, animations, and more. Like Three.js, it provides a higher-level API compared to @luma.gl/webgl.
PixiJS is a 2D rendering engine that can also handle some 3D graphics. It is designed for high-performance rendering and is often used for creating interactive graphics and games. While it focuses more on 2D, it can be a good alternative for simpler 3D tasks.
This module contains the WebGL Device adapter for luma.gl.
It also exports a set of JavaScript classes for the WebGL2 API. These represent the legacy luma.gl v8 API.
9.0.0-alpha.16
FAQs
WebGL2 adapter for the luma.gl core API
We found that @luma.gl/webgl demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 6 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
NIST has failed to meet its self-imposed deadline of clearing the NVD's backlog by the end of the fiscal year. Meanwhile, CVE's awaiting analysis have increased by 33% since June.
Security News
Cloudflare has launched a setup wizard allowing users to easily create and manage a security.txt file for vulnerability disclosure on their websites.
Security News
The Socket Research team breaks down a malicious npm package targeting the legitimate DOMPurify library. It uses obfuscated code to hide that it is exfiltrating browser and crypto wallet data.