Imperfect Environment Maps - 22 Racing Series - GameDev.net

october 2018 by bspassov

In 22 our lighting environment is dominated by sunlight, however there are many small emissive elements everywhere. What we want is for all these bright sunlit metal panels and the many emissive surfaces to be reflected off the vehicles. Being a high speed racing game, we need a technique with minimal performance impacts, and at the same time, we would like to avoid large baked data sets in order to support easy track editing within the game.

graphics
programming
gamedev
october 2018 by bspassov

Posts | Jendrik Illner - 3D Programmer

september 2018 by bspassov

Weekly collections of articles on computer graphics

graphics
programming
blog
september 2018 by bspassov

The Unreasonable Effectiveness of Quasirandom Sequences | Extreme Learning

august 2018 by bspassov

How to construct a new class of low discrepancy quasirandom sequences that improve on existing methods, such as the Halton, Sobol and Neiderreiter.

graphics
algorithm
august 2018 by bspassov

GitHub - prideout/clumpy: generate and transform numpy images from the command line

july 2018 by bspassov

This tool can manipulate or generate large swaths of image data stored in numpy files. It's a sandbox for implementing operations in C++ that are either slow or non-existent in pillow, scikit-image, or the SciPy ecosystem.

tool
graphics
july 2018 by bspassov

High-Performance Procedural Noise using a Histogram-Preserving Blending Operator -Eric Heitz

july 2018 by bspassov

Abstract: We propose a new by-example noise algorithm that takes as input a small example of a stochastic texture and synthesizes an infinite output with the same appearance. It works on any kind of random-phase inputs as well as on many non-random-phase inputs that are stochastic and non-periodic, typically natural textures such as moss, granite, sand, bark, etc. Our algorithm achieves high-quality results comparable to state-of-the-art procedural-noise techniques but is more than 20 times faster.

paper
graphics
procedural_generation
july 2018 by bspassov

Spectral Remapping for Image Downscaling

june 2018 by bspassov

Abstract: We present an image downscaling technique capable of appropriately representing high-frequency structured patterns. Our method breaks conventional wisdom in sampling theory—instead of discarding high-frequency information to avoid aliasing, it controls aliasing by remapping such information to the representable range of the downsampled spectrum. The resulting images provide more faithful representations of their original counterparts, retaining visually-important details that would otherwise be lost. Our technique can be used with any resampling method and works for both natural and synthetic images. We demonstrate its effectiveness on a large number of images downscaled in combination with various resampling strategies. By providing an alternative solution for a long-standing problem, our method opens up new possibilities for image processing.

paper
graphics
june 2018 by bspassov

Water Surface Wavelets

may 2018 by bspassov

ABSTRACT

The current state of the art in real-time two-dimensional water wave simulation requires developers to choose between efficient Fourier-based methods, which lack interactions with moving obstacles, and finite-difference or finite element methods, which handle environmental interactions but are significantly more expensive. This paper attempts to bridge this long-standing gap between complexity and performance, by proposing a new wave simulation method that can faithfully simulate wave interactions with moving obstacles in real time while simultaneously preserving minute details and accommodating very large simulation domains.

Previous methods for simulating 2D water waves directly compute the change in height of the water surface, a strategy which imposes limitations based on the CFL condition (fast moving waves require small time steps) and Nyquist’s limit (small wave details require closely-spaced simulation variables). This paper proposes a novel wavelet transformation that discretizes the liquid motion in terms of amplitude-like functions that vary over {\em space, frequency, and direction}, effectively generalizing Fourier-based methods to handle local interactions. Because these new variables change much more slowly over space than the original water height function, our change of variables drastically reduces the limitations of the CFL condition and Nyquist limit, allowing us to simulate highly detailed water waves at very large visual resolutions. Our discretization is amenable to fast summation and easy to parallelize. We also present basic extensions like pre-computed wave paths and two-way solid fluid coupling. Finally, we argue that our discretization provides a convenient set of variables for artistic manipulation, which we illustrate with a novel wave-painting interface.

graphics
paper
algorithm
simulation
The current state of the art in real-time two-dimensional water wave simulation requires developers to choose between efficient Fourier-based methods, which lack interactions with moving obstacles, and finite-difference or finite element methods, which handle environmental interactions but are significantly more expensive. This paper attempts to bridge this long-standing gap between complexity and performance, by proposing a new wave simulation method that can faithfully simulate wave interactions with moving obstacles in real time while simultaneously preserving minute details and accommodating very large simulation domains.

Previous methods for simulating 2D water waves directly compute the change in height of the water surface, a strategy which imposes limitations based on the CFL condition (fast moving waves require small time steps) and Nyquist’s limit (small wave details require closely-spaced simulation variables). This paper proposes a novel wavelet transformation that discretizes the liquid motion in terms of amplitude-like functions that vary over {\em space, frequency, and direction}, effectively generalizing Fourier-based methods to handle local interactions. Because these new variables change much more slowly over space than the original water height function, our change of variables drastically reduces the limitations of the CFL condition and Nyquist limit, allowing us to simulate highly detailed water waves at very large visual resolutions. Our discretization is amenable to fast summation and easy to parallelize. We also present basic extensions like pre-computed wave paths and two-way solid fluid coupling. Finally, we argue that our discretization provides a convenient set of variables for artistic manipulation, which we illustrate with a novel wave-painting interface.

may 2018 by bspassov

Shadow Map Silhouette Revectorization (SMSR) | Vladimir Bondarev

april 2018 by bspassov

Shadow Map Silhouette Recevorization (SMSR) is a filtering technique which re-approximates shadow silhouette based on MLAA implementation for GPU. SMSR consists of two main passes. First pass searches for discontinuity information.

graphics
paper
april 2018 by bspassov

siggraph2015_2D00_mmg_2D00_marius_2D00_slides.pdf

april 2018 by bspassov

Efficient rendering (mostly blurring) on mobile gpus

presentation
graphics
april 2018 by bspassov

Combining Analytic Direct Illumination and Stochastic Shadows

programming
graphics
paper

april 2018 by bspassov

In this paper, we propose a ratio estimator of the direct-illumination equation that allows us to combine analytic illumination techniques with stochastic raytraced shadows while maintaining correctness. Our main contribution is to show that the shadowed illumination can be split into the product of the unshadowed illumination and the illumination-weighted shadow. These terms can be computed separately — possibly using different techniques — without affecting the exactness of the final result given by their product.

This formulation broadens the utility of analytic illumination techniques to raytracing applications, where they were hitherto avoided because they did not incorporate shadows. We use such methods to obtain sharp and noise-free shading in the unshadowed-illumination image and we compute the weighted-shadow image with stochastic raytracing. The advantage of restricting stochastic evaluation to the weighted-shadow image is that the final result exhibits noise only in the shadows. Furthermore, we denoise shadows separately from illumination so that even aggressive denoising only overblurs shadows, while high-frequency shading details (textures, normal maps, etc.) are preserved.

april 2018 by bspassov

FacedownFX Slate Editor

march 2018 by bspassov

Tool for generating flipbooks, supports motion vector generation and custom GLSL shader based filters.

graphics
gamedev
software
tool
march 2018 by bspassov

Scalable Height Field Self-Shadowing

march 2018 by bspassov

Abstract

We present a new method suitable for general purpose graphics processing units to render self-shadows on dynamic height fields under dynamic light environments in real-time. Visibility for each point in the height field is determined as the exact horizon for a set of azimuthal directions in time linear in height field size and the number of directions. The surface is shaded using the horizon information and a high-resolution light environment extracted on-line from a high dynamic range cube map, allowing for detailed extended shadows. The desired accuracy for any geometric content and lighting complexity can be matched by choosing a suitable number of azimuthal directions. Our method is able to represent arbitrary features of both high- and low-frequency, unifying hard and soft shadowing. We achieve 23 fps on 1024x1024 height fields with 64 azimuthal directions under a 256x64 environment lighting on an Nvidia GTX 280 GPU.

graphics
algorithm
programming
paper
We present a new method suitable for general purpose graphics processing units to render self-shadows on dynamic height fields under dynamic light environments in real-time. Visibility for each point in the height field is determined as the exact horizon for a set of azimuthal directions in time linear in height field size and the number of directions. The surface is shaded using the horizon information and a high-resolution light environment extracted on-line from a high dynamic range cube map, allowing for detailed extended shadows. The desired accuracy for any geometric content and lighting complexity can be matched by choosing a suitable number of azimuthal directions. Our method is able to represent arbitrary features of both high- and low-frequency, unifying hard and soft shadowing. We achieve 23 fps on 1024x1024 height fields with 64 azimuthal directions under a 256x64 environment lighting on an Nvidia GTX 280 GPU.

march 2018 by bspassov

Interactive Horizon Mapping

march 2018 by bspassov

Abstract.

Shadows play an important role in perceiving the shape and texture of an object.

While some previous interactive shadowing methods are appropriate for casting

shadows on other geometry they can not be applied to bump maps (which contain

no explicit geometry.) Horizon Mapping is a technique used to compute shadows

for bump-mapped surfaces. We map the technique into modern graphics API’s and

extend it to account more accurately for the geometry of the underlying surface.

We also use it to represent limited self-shadowing for pure geometry. In mapping

the algorithm to hardware, we use a novel method to interpolate orientation in

tangent space over the surface. We show results of self-shadowing at frame rates.

graphics
paper
pdf
algorithm
programming
gamedev
Shadows play an important role in perceiving the shape and texture of an object.

While some previous interactive shadowing methods are appropriate for casting

shadows on other geometry they can not be applied to bump maps (which contain

no explicit geometry.) Horizon Mapping is a technique used to compute shadows

for bump-mapped surfaces. We map the technique into modern graphics API’s and

extend it to account more accurately for the geometry of the underlying surface.

We also use it to represent limited self-shadowing for pure geometry. In mapping

the algorithm to hardware, we use a novel method to interpolate orientation in

tangent space over the surface. We show results of self-shadowing at frame rates.

march 2018 by bspassov

Dwitter

december 2017 by bspassov

Platform for 140 character javascript demos

graphics
javascript
demoscene
programming
december 2017 by bspassov

Meshing in a Minecraft Game | 0 FPS

december 2017 by bspassov

How to mesh/simplify voxel geometry, i.e. turn a minecraft style mesh with many small cube faces into a mesh with fewer polygons (up to 8 times more that the optimum)

graphics
gamedev
optimization
december 2017 by bspassov

duangle / RTCSG2D — Bitbucket

december 2017 by bspassov

RTCSG2D is an original 2D rendering technique to draw complex constructive solid geometry in realtime on the GPU. A large count of unions of intersections of additive and subtractive quadratic brushes is supported.

The operating principle of the RTCSG2D algorithm is a massively parallel hierarchical quadtree resolver that subdivides tiles until they contain only three brushes or less.

library
graphics
programming
The operating principle of the RTCSG2D algorithm is a massively parallel hierarchical quadtree resolver that subdivides tiles until they contain only three brushes or less.

december 2017 by bspassov

vb-egsr11.pdf Least Squares Vertex Baking

october 2017 by bspassov

Abstract

We investigate the representation of signals defined on triangle meshes using linearly interpolated vertex attributes.

Compared to texture mapping, storing data only at vertices yields significantly lower memory overhead and less

expensive runtime reconstruction. However, standard approaches to determine vertex values such as point sampling

or averaging triangle samples lead to suboptimal approximations. We discuss how an optimal solution can be

efficiently calculated using continuous least-squares. In addition, we propose a regularization term that allows us

to minimize gradient discontinuities and mach banding artifacts while staying close to the optimum. Our method

has been integrated in a game production lighting tool and we present examples of representing signals such as

ambient occlusion and precomputed radiance transfer in real game scenes, where vertex baking was used to free up

resources for other game components.

paper
pdf
graphics
programming
We investigate the representation of signals defined on triangle meshes using linearly interpolated vertex attributes.

Compared to texture mapping, storing data only at vertices yields significantly lower memory overhead and less

expensive runtime reconstruction. However, standard approaches to determine vertex values such as point sampling

or averaging triangle samples lead to suboptimal approximations. We discuss how an optimal solution can be

efficiently calculated using continuous least-squares. In addition, we propose a regularization term that allows us

to minimize gradient discontinuities and mach banding artifacts while staying close to the optimum. Our method

has been integrated in a game production lighting tool and we present examples of representing signals such as

ambient occlusion and precomputed radiance transfer in real game scenes, where vertex baking was used to free up

resources for other game components.

october 2017 by bspassov

Passmw'Albedo

september 2017 by bspassov

Database containing albedo values and textures for various materials

graphics
gamedev
pbr
september 2017 by bspassov

Art by Rens

august 2017 by bspassov

Incredible photorealistic realtime photogrammetry based graphics.

graphics
gamedev
august 2017 by bspassov

lyon/README.md at master · nical/lyon · GitHub

august 2017 by bspassov

For now the goal is to provide efficient SVG-compliant path tessellation tools to help with rendering vector graphics on the GPU. For now think of this library as a way to turn complex paths into triangles for use in your own rendering engine.

library
programming
graphics
svg
rust
august 2017 by bspassov

prosthetic knowledge — Playful Palette: An Interactive Parametric Color...

july 2017 by bspassov

Graphics research from Adobe Research and University of Toronto have designed a digital painting palette interface with features similar to real-world physical paint mixing

cool
graphics
july 2017 by bspassov

Object/Object Intersection

july 2017 by bspassov

Links to papers/books/articles/code for various object/object intersection tests

3d
graphics
math
programming
useful
collision-detection
july 2017 by bspassov

**related tags**

Copy this bookmark: