Computer Graphics

62 readers
1 users here now

All about 3D and 2D computer graphics, vector and raster graphics, graphics programming using special APIs (e.g. Vulkan and OpenGL).

Some topics in computer graphics include user interface design, sprite graphics, rendering, ray tracing, geometry processing, computer animation, vector graphics, 3D modeling, shaders, GPU design, implicit surfaces, visualization, scientific computing, image processing, computational photography, scientific visualization, computational geometry and computer vision, among others. The overall methodology depends heavily on the underlying sciences of geometry, optics, physics, and perception.

#ComputerGraphics #CGI #CG #3D #2D #graphics #vulkan #opengl

founded 5 months ago
MODERATORS
1
 
 

Blender 4.4 brings improved animation workflow, better modeling, new sculpt brush, and smoother video editing, plus over 700 issues fixed.

It introduces Action Slots, revolutionizing animation workflows by letting multiple data-blocks share a single Action. The Video Sequencer continues to improve with quality-of-life upgrades for text editing, expanded support for codecs including H.265 and 10/12-bit videos, and performance improvements that make editing faster than ever.

And much more..

2
 
 

In computer graphics, we rarely encounter continuous data. We often work with digital data, and in the context of geometric modeling, this means we typically work with polygon meshes rather than procedural surfaces like Bézier patches. The most popular technique for constructing digital three-dimensional objects in dedicated modeling software is polygon modeling. The result of the creation phase is a set of polygons (mesh), where the polygons in the mesh can share vertices and edges with other polygons.

Although users can create various types of surfaces (e.g., non-manifold), the most common surface is the topological 2-manifold. In short, a 2-manifold is a mathematical concept in topology, where the space locally resembles the Euclidean plane in R^2^. Essentially, every point on a 2-manifold has a neighborhood that looks like a piece of the plane.

At the vertices of a polygon, users can store additional data (per-vertex attributes), such as vertex normals (for simulating curved surfaces), texture coordinates (for texture mapping), or RGBA color.

In theory, all types of polygons can be used. In practice, however, 3D graphics artists most commonly use triangles and quadrilaterals. These polygons are typically referred to as topology primitives in computer graphics APIs. From an artist’s point of view, quadrilaterals are more advantageous because they are easier to work with. These arguments make the quadrilateral-based topology preferred by artists when modeling 3D objects.

Long ago, GPUs abandoned support for hardware accelerated quadrilaterals (or polygons consisting of more than 4 vertices) rasterization, therefore also interpolation of vertex attributes contained in their vertices (line rendering is for a different story). The only polygon that has hardware accelerated implementation of rasterization and interpolation of parameters is the triangle. There are very good reasons why it was the triangle that won the race.

Triangles are the foundation of real-time computer graphics, as reflected in the primitive topology supported by graphics APIs. All other polygon types used in meshes must be converted into triangles. When a modeling application allows quad-mesh construction, the visualization of this mesh is not based on quadrilaterals. Instead, the application converts them into triangle meshes. This necessary conversion can introduce C^1^ discontinuities in interpolated vertex attributes (such as texture coordinates, vertex normal vectors, and vertex colors) on the quadrilateral surface.

In the case of the topic covered in this article, the discontinuity of C^1^ refers to the point at which the piecewise function is continuous, but its first derivative is not. In other words, the piecewise function itself has no jumps or breaks, but the slope (or rate of change) of the piecewise function has jumps or breaks.

For rasterization of quadrilaterals as two triangles, C^1^ discontinuity in the interpolation of vertex attributes is most visible along the newly created edge that splits the quadrilateral into two triangles.

The purpose of this article is to propose a new method that preserves C^1^ continuity over the common edge of two generated triangles from convex quadrilaterals. This new method is based on an algebraic solution for the Bilinear interpolation coefficient expressed in Barycentric coordinates. Bilinear interpolation has the advantage of being the simplest interpolation from an algebraic perspective. Consequently, the computational overhead is negligibly small. Additionally, linear interpolation allows for the easy construction of other types of interpolation, such as polynomial interpolation. The algebraic solution will then be implemented and tested using the three available hardware-accelerated pipelines supported by GPU hardware.

3
4
 
 

An educational implementation of a parallel processor in system-verilog.

The Intro to GPU Architecture chapter is a short write-up on the theoretical basics needed to understand the GPU implemented in this repository.

5
 
 

The Khronos Group, an open consortium of industry-leading companies dedicated to creating advanced interoperability standards, has announced the release of Vulkan 1.4, the latest version of its cross-platform 3D graphics and compute API. Vulkan 1.4 integrates and mandates support for many proven features into its core specification, expanding the functionality that is consistently available to developers, greatly simplifying application development and deployment across multiple platforms.

The Vulkan 1.4 specification consolidates numerous previously optional extensions, features, and increased minimum hardware limits, many of which were defined in the Vulkan Roadmap 2022 and 2024 milestones and associated profiles, including:

  • Streaming Transfers: Vulkan 1.4 imposes new implementation requirements to ensure portable, cross-platform applications can stream large quantities of data to a device while simultaneously rendering at full performance.
  • Previously optional extensions and features critical to emerging high-performance applications are now mandatory in Vulkan 1.4, ensuring their reliable availability across multiple platforms. These include push descriptors, dynamic rendering local reads, and scalar block layouts.
  • Maintenance extensions up to and including VK_KHR_maintenance6 are now part of the core Vulkan 1.4 specification.
  • 8K rendering with up to eight separate render targets is now guaranteed to be supported, along with several other limit increases.
6
 
 

The glTF Sample Viewer is an essential part of the glTF ecosystem. Developed by the Khronos 3D Formats Working Group, this open-source JavaScript viewer highlights the latest features of glTF, renders glTF files directly in a web browser, and can be easily integrated into other JavaScript projects using glTF.

Working closely with UX3D, a software company specializing in 3D rendering and user interfaces, Khronos has released version 1.1 of the Viewer, offering substantial functionality and usability improvements. In this blog, we’ll explore the new features of the glTF Sample Viewer 1.1 and share insights on how we’ve made it easier to integrate Sample Viewer into web applications.

New:

  • Repository restructuring for easier renderer embedding
  • Added WebP support
  • Enhanced mobile support
  • Added KHR_animation_pointer support
  • glTF Validator integration
7
 
 

New version 24.3 of the Mesa opensource 3D graphics library and drivers has been released. New features:

  • Expose Vulkan 1.3 on v3dv, both rpi4 and rpi5
  • VK_EXT_descriptor_buffer on nvk
  • VK_EXT_post_depth_coverage on nvk
  • VK_KHR_video_maintenance1 on radv
  • VK_EXT_legacy_vertex_attributes on nvk
  • GL_KHR_shader_subgroup on radeonsi
  • VK_KHR_maintenance7 on nvk
  • VK_KHR_dynamic_rendering_local_read on nvk
  • GL_ARB_timer_query on Panfrost
  • GL_EXT_disjoint_timer_query on Panfrost
  • VK_KHR_pipeline_binary on RADV
  • VK_KHR_compute_shader_derivatives on anv
  • VK_NV_compute_shader_derivatives on nvk
  • VK_KHR_compute_shader_derivatives on nvk
  • VK_KHR_compute_shader_derivatives on radv
  • VK_KHR_shader_relaxed_extended_instruction on anv, hasvk, hk, nvk, radv, tu, v3dv, lvp
  • GL_OVR_multiview and GL_OVR_multiview2 on zink
  • VK_KHR_shader_float_controls2 on radv
  • VK_KHR_shader_float_controls2 on nvk
  • VK_EXT_device_generated_commands on nvk, radv
  • VK_EXT_host_image_copy on nvk/Turing+
  • VK_EXT_depth_clamp_control on anv, hasvk, nvk, radv
  • VK_KHR_shader_quad_control on nvk
  • GL_EXT_draw_buffers2 on etnaviv/HALTI5+
  • GL_ARB_draw_buffers_blend on etnaviv/HALTI5+
  • VK_KHR_fragment_shading_rate on NVK
  • GL_ARB_draw_indirect on etnaviv/HALTI5+
  • VK_EXT_depth_clamp_zero_one on NVK
  • GL_ARB_framebuffer_no_attachments on etnaviv
8
 
 

The Vulkan Working Group at The Khronos Group has delivered a series of video decode and encode extensions since 2022 collectively referred to as "Vulkan Video." These extensions integrate hardware-accelerated stream compression and decompression using widely adopted codecs with the full power of Vulkan, enabling developers to seamlessly combine GPU-powered rendering and compute acceleration with video processing in a single highly efficient runtime.

Today, with the release of Vulkan 1.3.302, Khronos is proud to announce two new encode extensions. First, the highly anticipated Encode AV1 extension enhances Vulkan Video by adding AV1 encode functionality to complement its existing AV1 decode support. This milestone means that Vulkan Video now provides full decode AND encode acceleration for the H.264, H.265 and AV1 codec standards. Additionally, the new Encode Quantization Map extension introduces advanced encoding features for all supported codecs to Vulkan Video developers for the first time. We are confident these extensions provide the necessary building blocks for your advanced Vulkan Video applications!

9
1
Blender 4.3 (www.blender.org)
submitted 4 months ago by [email protected] to c/[email protected]
 
 

cross-posted from: https://lemmy.ml/post/22682449

Blender Foundation and the online developer community are proud to present Blender 4.3!

Packed with exciting improvements to existing tools (hello EEVEE Light Linking and multi-pass compositing!), performance boosts, and the foundations for the future (looking at you, Grease Pencil v3).

Plus, hundreds of contributions ranging from new features to accessibility enhancements—and as always: loads of fixes.

10
11
 
 

The following article is a historical look at the era that spawned first raytracers for home computers, a predecessor to Blender among them. Writing it was possible thanks to the fact, that, for the first time, the progam and source code of said predecessor are publicly available.

12
 
 

glTF has evolved beyond its origins as a standalone 3D format. It is now adopted as an ISO international standard and has become central to a rapidly expanding ecosystem of software tools, standards and extensions.

Given the central role of glTF in enabling 3D experiences across diverse platforms, devices and the web, it is crucial that the glTF ecosystem continue to evolve to meet the needs of content creators, engine vendors and application developers, as well as adapt to new use cases such as 3D shopping, education and training, architectural visualization, and many others.

This year, the Khronos 3D Formats Working Group has reached several significant milestones along the roadmap for developing glTF into an interoperable spatial computing format, and has several extension development efforts underway. Many key extensions for spatial consistency, improved material rendering and consistent render fidelity have now reached the Review Draft stage, where they are ready for detailed review and initial testing. There are also several new extensions in the Initial Draft phase, where the Working Group is seeking directional input to ensure specification development aligns with the community’s needs. We are cranking and getting work done!

This blog will review recent ecosystem updates, explain current specs nearing release candidacy, and highlight opportunities for community input, inviting glTF stakeholders to share useful feedback to shape the future development of the glTF ecosystem.

13
 
 

Creating realistic images has been a persistently challenging problem in computer graphics, especially when it comes to rendering scenes with complex lighting. Path tracing achieves photorealistic quality rendering by simulating the way light rays bounce around the scene and interact with different materials, but it also requires significant computation to generate clean images. This is where neural supersampling and denoising come into play. In this blog post, we describe how our neural supersampling and denoising work together to push the boundary for real-time path tracing.