mechazoidal + graphics   464

Vagrearg - Fast HSV to RGB Conversion
"Using a different color-space than RGB makes coding functionality much easier, but it comes at the expense of a more or less complex calculation to convert the color-space used in coding to the LED controlling RGB color-space. Therein also lies the problem, small micro controllers are unable to perform complex calculations without significant resources, which usually means increased calculation time."
color  avr  math  programming  graphics  reference  embedded 
16 days ago by mechazoidal
"When tinkering with a new graphics API or raytracing kernel, I often want to use procedurally-generated shapes to avoid worrying about loading art assets.

Hence my motivation for authoring a single-file, zero-dependency, C99 library that can generate simple shapes and perform basic operations on them:
- Applying affine transformations
- Computing surface normals
- Welding colocated vertices"
library  piperesearch  mesh  models  procedural  graphics  c 
7 weeks ago by mechazoidal
How (not) to test graphics algorithms | Bart Wronski
Advising to move away from "golden files" (ie, screenshots and pixel-level compare) towards a more typical unit-testing approach.
Do note his point on FP and GPU testing:
"I personally think that having a hybrid tests that do all the input creation, packing, output fetching and analysis on the CPU, but execute the actual graphics production code on the GPU is a good middle ground, but as I said – it’s quite tough point, and every approach I have tried had its pros and cons. If you suffer from lots of noise from driver / testing device changes, (and are sure that your tests are designed in a good way) then consider using a WARP device for DirectX, or excellent SwiftShader for OpenGL.)"
2019  piperesearch  testing  graphics  gpu  gamedev 
9 weeks ago by mechazoidal
GitHub - bloc97/Anime4K: A High-Quality Real Time Anime Upscaler
"High-quality real-time anime upscaling SISR algorithm that can be implemented in any programming language, anywhere."

"Remarkably, the proposed method does not use any machine-learning or statistical approach, and is tailored to content that puts importance to well defined lines/edges while tolerates a sacrifice of the finer textures. The proposed algorithm can be quickly described as an iterative algorithm that treats color information as a heightmap and 'pushes' pixels towards probable edges using gradient-ascent. This is very likely what learning-based approaches are already doing under the hood (eg. VDSR, waifu2x)."
As of 2019 the example implementations are using HLSL(MPC-BE with madVR)
algorithms  graphics  anime  piperesearch  repo:github 
9 weeks ago by mechazoidal
Minify Your SVGs -
Note the lobsters discussion: there's at least one bug in Firefox this might tickle:
svg  webdev  graphics  web 
11 weeks ago by mechazoidal
Real-Time Rendering · GPUs prefer premultiplication
"The short version: if you want your renderer to properly handle textures with alphas when using bilinear interpolation or mipmapping, you need to premultiply your PNG color data by their (unassociated) alphas."
"We seem to rediscover this every few years"
Graphics  rendering  shaders  piperesearch 
12 weeks ago by mechazoidal
"dependency-free C library for triangulating wide lines, Béziers, and streamlines. The following canvases use the library inside a small WebAssembly module. There are no memory allocations occurring per-frame."
(by the same author of "heman")
piperesearch  c  library  curves  graphics 
june 2019 by mechazoidal
The smooth resize test | Raph Levien’s blog
Note the subtleties in this, and note the discussion in the linked winit GitHub issue
graphics  gui  piperesearch  rust 
june 2019 by mechazoidal
Keenan Crane - The Vector Heat Method
"transport of tangent vectors on curved surfaces, or more generally, any vector-valued data on a curved manifold."
Look at examples: PR uses are probably for texture and weight mapping
piperesearch  math  paper  graphics 
june 2019 by mechazoidal
Implementation matters: PS2 weirdness and Path Two Rendering - GovanifY
"This was a pretty amazing piece to tackle as it’s basically the polar opposite of the other competing platforms back in the day. A lot of non-sequential parallel cores doing calculations, very little cache and fricking insane bandwidth. It really shows how much a different system can matter in the devlopment world!"
psx  rendering  graphics  reference 
june 2019 by mechazoidal
GitHub - GovanifY/openvcl: Replacement for VCL (VU Command Line)
"a software development tool that simplifies [PlayStation 2] VU programming by preprocessing source into standard VSM/DSM. It merges both pipelines into one single path, manages register allocation and (in the near future) reschedules instructions for efficient execution. This kind of software has previously only been available for registered developers and purchasers of PS2 Linux. For others, the functionality has been unavailable, and hampered development of easily managed VU programs."
repo:github  homebrew  Sony  reverse_engineering  assembly  graphics  psx 
june 2019 by mechazoidal
crazyloglad comments on: Why are 2D vector graphics so much harder than 3D? | Lobsters
"With 3D a software fallback was never a realistic option, so the need to cooperate was a lot stronger."
lobsters  comment  history  graphics  3d  2d 
may 2019 by mechazoidal
Why are 2D vector graphics so much harder than 3D? | Clean Rinse
A good deep-dive through graphics history: starting with Postscript, and ending in signed-distance fields.
2d  graphics  3d  history  postscript  2019  math 
may 2019 by mechazoidal
2D Graphics on Modern GPU | Raph Levien’s blog
Note that he is using Metal 2.1, and focusing on the most modern hardware. A lot of good insight all around!
PR: note the Serialization chapter, where most typical data structures don't work well on GPUs(like winged-edge??)
graphics  rust  metal  2d  2019  gpu 
may 2019 by mechazoidal
Matrix Transformations
"The math behind multiplying and inverting transformation matrices is out of scope here, and mostly unnecessary in modern practice. Applying the following concepts of transformation and composition can be applied to any 3D math library. "
reference  linear_algebra  piperesearch  graphics  math  visualization 
april 2019 by mechazoidal
Calibrated Cameras in OpenGL without glFrustum ←
"You've calibrated your camera. You've decomposed it into intrinsic and extrinsic camera matrices. Now you need to use it to render a synthetic scene in OpenGL. You know the extrinsic matrix corresponds to the modelview matrix and the intrinsic is the projection matrix, but beyond that you're stumped. You remember something about gluPerspective, but it only permits two degrees of freedom, and your intrinsic camera matrix has five. glFrustum looks promising, but the mapping between its parameters and the camera matrix aren't obvious and it looks like you'll have to ignore your camera's axis skew. You may be asking yourself, "I have a matrix, why can't I just use it?"

You can. And you don't have to jettison your axis skew, either. "
opengl  computer_vision  graphics  reference  gamedev  vr 
april 2019 by mechazoidal
3D Projection
High-level overview of the math in OpenGL projection matrices, with excellent visualizations and links to other good 3d representation papers
graphics  math  vr  opengl  reference  visualization  linear_algebra 
april 2019 by mechazoidal
Explaining basic 3D theory - Game development | MDN
The basic definitions of terms and the modern (2015+) graphics pipeline
mozilla  threejs  graphics  3d  math  reference  webgl  piperesearch 
april 2019 by mechazoidal
Simple OpenGL Image Library
"a tiny C library used primarily for uploading textures into OpenGL. It is based on stb_image version 1.16, the public domain code from Sean Barrett (found here). I have extended it to load TGA and DDS files, and to perform common functions needed in loading OpenGL textures. SOIL can also be used to save and load images in a variety of formats (useful for loading height maps, non-OpenGL applications, etc.)"
opengl  library  textures  graphics 
april 2019 by mechazoidal
Christine Love on Twitter: "Incidentally, this isn’t just about text outlines—it’s about ANYTHING where your image is composited from multiple elements. (ie, portraits) You always need to composite every layer together first, THEN do your fade. I’
@christinelove: Incidentally, this isn’t just about text outlines—it’s about ANYTHING where your image is composited from multiple elements. (ie, portraits) You always need to composite every layer together first, THEN do your fade. I’ve seen a shocking number of commercial games fuck this up!
gamedev  graphics  piperesearch  tweet 
april 2019 by mechazoidal
Model View Projection
@jsantell: explaining model, view, projection matrices and how they map into model, world, view, and clip spaces
math  piperesearch  visualization  OpenGL  graphics  shaders 
april 2019 by mechazoidal
GitHub - samuell/xara-xtreme: Xara Xtreme (formerly aka Xara LX) source code mirror
Note that this does NOT contain source for the "CDraw" renderer, and hasn't been touched since 2007
repo:github  vector  piperesearch  tools  graphics 
april 2019 by mechazoidal
3D Animation | Anime Has A Bright Digital Future - YouTube
@CanipaShow: Discussions around 3D anime are often just about whether it's good/bad.

Here's my new video with a different approach, exploring the past, present and future of 3D anime, including VR, Spider-verse, Kemono Friends and so much more!
piperesearch  video:youtube  graphics  anime  animation 
april 2019 by mechazoidal
The Hacks of Life: Keeping the Blue Side Up: Coordinate Conventions for OpenGL, Metal and Vulkan
"OpenGL, Metal and Vulkan all have different ideas about which way is up - that is, where the origin is located and which way the Y axis goes for a framebuffer. This post explains the API differences and suggests a few ways to cope with them. I'm not going to cover the Z axis or Z-buffer here - perhaps that'll be a separate post."
reference  opengl  vulkan  graphics  rendering  2019  piperesearch 
april 2019 by mechazoidal
"a high performance 2D vector graphics engine written in C++[C interface also available] and released under the Zlib license. It has a built-in JIT compiler that generates optimized pipelines at runtime. Additionally, the engine features a new rasterizer that has been written from scratch. It delivers superior performance while quality is comparable to rasterizers used by AGG and FreeType. The performance has been optimized by using an innovative approach to index data that is built during rasterization and scanned during composition. The rasterizer is robust and excels in rendering complex vector art and text."

Note that it started as an experiment to do 2d pipelines with JIT, and it worked so well they improved it into a real library. No dependencies except AsmJit, cmake build provided.
c  c++  library  graphics  jit  piperesearch  gamedev  pmz 
april 2019 by mechazoidal
The story of the 3dfx Voodoo1
"In 1996 the company announced the SST1 (named after the founders Sellers-Smith-Tarolli-1) architecture which was promptly licensed by several OEMs such as Diamond, Canopus, Innovision, and ColorMAX. The marketing name given to their creation was "Voodoo1" for its magic like performances properties."
3d  games  hardware  history  graphics 
april 2019 by mechazoidal
The story of the Rendition Vérité 1000
"What handicaped the V1000 (and indirectly its successor the V2200) was its lack of a hardware-accelerated z-buffer. As soon as a developer enabled depth-test, the fill-rate dropped to 12.5Mpixel/s and framerate was halved. As Stephan Podell would later explain[10], vQuake (and all other games) had been banged into the V1000 by reading the z-buffer as little as possible.

Developers found out that the only way to ship was to have the CPU do most of the work. In the case of vQuake, that meant using the card as a super fast horizontal span renderer which always wrote to the z-buffer but only performed z-read-compare when rendering enemies. Even though good products shipped, the consequences of these design "choices" would be far reaching."
graphics  3d  hardware  history  games 
april 2019 by mechazoidal
A Surface Standard
An uber-shader for doing "all" materials, taking up where Arnold's standard shader leaves of. It's based on the bidirectional scattering distribution function and uses 10 closures for all physical aspects. They also provide a stripped-down compatibility version for real-time/game use. Provided in Open Shading Language form.
Note that this is a living document and my be updated at any time (last check: 2019/03)
shaders  graphics  autodesk  piperesearch  rendering  math  osl 
march 2019 by mechazoidal
William Fetter, E.A.T., and 1960s Computer Graphics Collaborations in Seattle -
"William Fetter (1928-2002) worked at Boeing in the 1950s and 1960s and invented early computer graphics applications. He also helped found a Seattle chapter of Experiments in Art and Technology (E.A.T.) at the Henry Art Gallery in 1968, bringing together artists and engineers in Seattle and Portland. This essay, originally posted on the website, is by Robin Oppenheimer (b. 1952), who met and interviewed Fetter before his death as part of her research into the E.A.T. chapter for a Reunion Symposium at the Henry Art Gallery on October 25 and 26, 2002."
"By November 1960, a formal research program was established by Boeing, and management of the Research and Development project was assigned to Fetter, who was later transferred to the Seattle office in 1963. With his team of engineers and computer specialists, Fetter began to develop computer-created one-second interval drawings of simulated views from a moving airplane cockpit during an airport landing. This was the primitive beginning of the current billion dollar computer graphics and computer animation industries,"
seattle  wa_state  history  from:historylink  graphics  cg  boeing 
march 2019 by mechazoidal
Log-spherical Mapping in SDF Raymarching
"Although these types of geometries have been known and renderable for a long time, I believe the techniques described here offer much unexplored creative potential, since they allow the creation of raymarchable SDFs of self-similar geometries with an infinite level of visual recursion, which can be explored in realtime on the average current-gen graphics card. "
(the math is heavy, but it looks cool)
shaders  sdf  rendering  graphics 
march 2019 by mechazoidal
Ministry of Flat : Automated UV unwrapping for everyone
Eskil's paid project: a high-speed fully automated UV unwrapper, based on the tools he built for LOVE
"Just like a skilled artist, the procedure analyses the model and approaches each type of geometry differently to get the optimal result. It detects over 20 different types of topologies and approaches each one differently. The Ministry has spent countless hours UV mapping and texturing models. This experience has layed the foundation to create the ultimate UV tool, for 3D painted models, light mapping and procedural materials. The Ministry of Flat is continuously developing the procedure with the feedback and support of list of professional 3D artists at several different AAA game studios to ensure it meets all the demands of 3D artists."
tools  texturing  graphics  piperesearch  uv 
february 2019 by mechazoidal
Complexity Reduction of Catmull-Clark/Loop Subdivision Surfaces
the core use of subdiv in Verse/LOVE
"The largest shortcoming of this
algorithm is that flat areas with curved edges tend to be
over tessellated. This is something we intend to combat
by having a separate set of look up tables for flat
polygons. Another potential problem is that the
algorithm can never reduce the mesh below its control
mesh polygon count. Still it produces very good results
especially with architectural objecs. The biggest
features with this algorithm is of course that it is fast,
contains no iterative searching and that all data can be
stored in arrays since there are no insert/delete
operations, something that 3D hardware APIs such as
OpenGL like. The biggest problem is that the algorithm
is so large and contains so many steps that it becomes
very hard to implement and debug. In the future we
would like to try to instead of generating a look-up
table generate compliable code that would contain the
tessellation information to see if there is a possible
speed gain. "
archive_it  paper  pdf  piperesearch  graphics  2001  rendering 
february 2019 by mechazoidal
Part of the Langlois institute?
graphics  cg  art  history  archive  reference 
february 2019 by mechazoidal
The long and lonely death of Softimage - Features - Digital Arts
Note that SI(and later XSI) had the edge in UI and integrating the various components. ICE, the graphic node-based architecture was hailed.
The main nail was that the more general scripting system of Maya was used widely by the major VFX houses, which had their pipelines structured around MEL. SI probably couldn't keep up in the high-end market.
The note is that MEL is old and clunky, but the flexibility it provides is essential to the higher-end. SI's UI remains a good reference point.
history  2014  softimage  piperesearch  vfx  cg  graphics  3d 
february 2019 by mechazoidal
What is retopology, and how do you do it with ZBrush? | Quora
" is re-building an existing mesh with (more or less) the same volume and shape but with a different mesh layout. Especially when working in a sculpting program like Zbrush, the underlying 'grain' of the mesh matters a lot for the quality of the result: you want the edges in the mesh to flow as much as possible with the contours of the mesh. You also want to control the density of the subdivisions so you have more edges where you need detail or special animation deformations, and fewer edges in simpler areas. Retopology is also a good way to simplify and clean up noisy data, such as 3d scans."
"Most sculptors find that they iteratively re-build the mesh as they sculpt -- they'll work for a while, look for problems, and then re-flow the topology around a problem area as they hit problems or add more details. Until quite recently this was a pretty big pain in the butt, since you're basically put re-modeling the mesh on the fly. However modern tools have made it much less of a problem. "
(in case you thought most of the well-poly'd wireframes you see were the result of an expert box-modeler, rather than sculpting it and converting the mesh)
2016  discussion  piperesearch  geometry  answer  3d  graphics  retopo 
february 2019 by mechazoidal
The Wheel of Reincarnation
Found: the original Ivan Sutherland reference
graphics  hardware  computers  history 
february 2019 by mechazoidal
Quadtree vs Spatial Hashing - a Visualization
Spatial hashing seems to be faster for uniform size objects. Visualizing both of them helps to show the differences
graphics  datastructures  gamedev 
january 2019 by mechazoidal
How the Marber grid was made - Penguin Series Design
Created in 1961 for Penguin books:
"The famous Marber grid is one of the foundation stones of Penguin mythology, a design so clever that it is still studied half a century after it was made."
"To retain the unity of the series, the freedom of where to place the title, the logotype and price and in what colour, is controlled by the grid, and routine readers of crime fiction will be able to pinpoint without difficulty the title and author’s name. (Romek Marber)"
books  design  graphics  art 
january 2019 by mechazoidal
AI Neural Networks being used to generate HQ textures for older games (You can do it yourself!) | Lobsters
Esrgan and sftgan. Not sure about textures, but note how it could be handy for photography sharpening
neuralnetworks  graphics  lobsters  ai 
january 2019 by mechazoidal
Eight million pixels and counting - Following up on the 2d graphics in Rust discussion
Noting that "2D graphics means different things to different people", focusing on what that means for web browsers and general UI.
In particular note his API design notes:
- Most common 2D APIs like Canvas were descendants of Java2D/Postscript, where the developer needs to manually change parts of the scene(very stateful). They don't map well to modern GPUs.
- Compositors are more important than ever. Thankfully, most if not all current window managers now let you hand off your compositor calls(albeit being subtly different in how it's done, this is a job for compatibility layers).
- These two facts are how most browsers and UI toolkits operate: "an immediate mode painting abstraction, on top of which an invalidation system and a compositor were implemented to paper over the difficulty of rendering at 60 frames per second (without draining too much power). " Most are now trying to move away from this(Firefox/Mozilla are building WebRender, which he then explains a bit of)
- The description of WebRender, "consumers of the API build a retained representation made of nested "display lists", and several frames will be rendered from this representation when animated properties of these display lists change (for example scrolling, or other types of animations).". Note the simple list of primitives it uses.
- He then notes that while WR is good for UIs and web, path-rendering would be a much different design, which he hopes to cover in a separate post
graphics  piperesearch  api  2018  ui  web 
january 2019 by mechazoidal
Abe 👩‍❤️‍💋‍👩 Engayged on Twitter: "ALTERNATIVES TO ADOBE SUITE THREAD because fuck youNOTE these are probably not the be all end all, just one cheapskate designer and illustrators opinion"
Also check replies:there's a LOT

Common ones that pop up:
Clip Studio
Affinity {Designer,Photo, Publisher}
DaVinci Resolve
Medibang Paint
paint tool sai
piperesearch  tweets  tools  graphics  2019 
january 2019 by mechazoidal
Remove Background from Image –
Still not sure if to trust this, plus as people say: newer Photoshop versions have this already, and hire does it do on an image without bokeh
graphics  photos  tools  webapp 
january 2019 by mechazoidal
GitHub - chinedufn/landon: A collection of tools, data structures and methods for exporting Blender data (such as meshes and armatures) and preparing it for your rendering pipeline.
"The goal [...] to be a minimal suite of heavily tested, well documented tooling for getting data out of Blender and a set of functions for pre-processing that data so that you can make use of it in your rendering pipeline.

The goal is that getting data out of Blender and into your rendering pipeline becomes easy as pie."
piperesearch  rust  repo:github  tools  blender  cg  graphics 
january 2019 by mechazoidal
Rational rendering and floating bar :: Inigo Quilez :: fractals, computer graphics, mathematics, demoscene and more
"After this exercise I ended up believing that there's perhaps room for a number representation that is based on rational numbers similar to what I am now calling "floating bar", a representation that is compatible with integers and can do many operations in exact arithmetic for many problems (provided the input is rational). The 64 bit version (1|6|57) can go a long way, although the 32 bit version (1|5|26) can already produce some interesting renderings.

Overall, this was a fun exploration. There were a few surprises on the way, an small invention, and lots of learning about Pell's equation, square roots, GCD, x86_64 intrinsics, Riemann Zeta function, and some other things. I'm pretty happy with it!"

Note that a lobsters comment compared this to specific fixed-point arithmetic:
graphics  cg  math  rendering  2019 
january 2019 by mechazoidal
piLibs C++ :: Inigo Quilez :: fractals, computer graphics, mathematics, demoscene and more
"This is the set of libraries I've been using since 2006 to make all of my demos, experiments and CG activities. These have been used in demoscene productions, art exhibitions, VJ sessions, Siggraph tech demos, and private experiments. They cover everything from OS abstraction to file formats, rendering, VR, sound, meshes, compression, etc. This is not an engine or a framework. It's a set of individual modules, of which I only include a few as I need per project. There's no dependencies with external libraries other than a very few little for VR and sound. Right now the Windows implementation is the only maintained one, and it comes with Visual Studio 2015 projects." (MIT licensed)
libraries  c++  graphics  vr  piperesearch 
january 2019 by mechazoidal
GitHub - linebender/kurbo: A Rust library for manipulating curves
"contains data structures and algorithms for curves and vector paths. It is probably most appropriate for creative tools, but is general enough it might be useful for other applications."
rust  library  graphics  curves  math 
december 2018 by mechazoidal
How DOOM fire was done
"It was interesting to re-discover this classic demoscene effect; the underlying idea is similar to the first water ripple many developers implemented as a programming kata in the 90's. The fire effect is a vibrant testimony to a time when judiciously picked palette colors combined with a simple trick were the only way to get things done."
games  programming  graphics  gamedev 
december 2018 by mechazoidal
A new spline | Raph Levien’s blog
"The new spline solves this problem, smoothly going through cusps in the cases where Spiro would suddenly reverse the direction of loops. I was inspired by κ-Curves, the technology underlying the new “curvature tool” in Adobe Illustrator, which also uses cusps to achieve robustness (and, kindly enough, cites my work as an example of the problem it solves). The exact approach I used was more similar to [Hobby’s splines], originally designed for Metafont, and also uses cubic segments that somewhat approximate Euler spirals as the basic curve family."
math  graphics  curves  piperesearch 
december 2018 by mechazoidal
GitHub - jpcy/xatlas: Mesh parameterization library
"A cleaned up version of thekla_atlas. Mesh charting, parameterization and atlas packing. Suitable for generating unique texture coordinates for baking lightmaps."
library  repo:github  graphics  mesh  geometry  piperesearch 
december 2018 by mechazoidal
" a library for solving sparse linear systems, especially designed for the Computer Graphics community. The goal for OpenNL is to be as small as possible, while offering the subset of functionalities required by this application field. The Makefiles of OpenNL can generate a single .c + .h file, very easy to integrate in other projects. The distribution includes an implementation of our Least Squares Conformal Maps parameterization method."

Now under a open license, and integrated into blender & CGAL
graphics  library  math  matrix  geometry  c++  piperesearch 
december 2018 by mechazoidal
GitHub - doug-moen/curv: a language for making art using mathematics
Based on f-rep, can duplicate anything found on

"can export meshes to STL, OBJ and X3D files for 3D printing. The X3D format supports full colour 3D printing (on, at least). These meshes are defect free: watertight, manifold, with no self intersections, degenerate triangles, or flipped triangles."
repo:github  programming  language  graphics  3d  math  piperesearch 
december 2018 by mechazoidal
Hugin - Panorama photo stitcher
"an easy to use cross-platform panoramic imaging toolchain based on Panorama Tools. With Hugin you can assemble a mosaic of photographs into a complete immersive panorama, stitch any series of overlapping pictures and much more. "
(it is more like a GUI for Panorama Tools, but fully open source)
photography  tools  opensource  graphics 
december 2018 by mechazoidal
2D SDF Shadows
This is using Unity shaders (hlsl/Cg), but relatively understandable
sdf  rendering  graphics  shaders  howto  gamedev  piperesearch  unity3d 
december 2018 by mechazoidal
GitHub - anishathalye/gemini: Gemini is a modern LaTex beamerposter theme 🖼
"Building posters with LaTeX is by far a better experience than using PowerPoint, Keynote, or Illustrator. I felt that the one thing missing was an aesthetically pleasing poster theme. There’s no reason a poster designed using LaTeX should look any less beautiful than a poster made using graphic design software like Adobe Illustrator.

This is what led to the creation of Gemini, a LaTex poster theme with a focus on being clean, minimal, and looking great out of the box while being customizable"
latex  art  posters  tools  graphics  themes 
october 2018 by mechazoidal
The Computational Beauty of Nature | The MIT Press
"shows many examples of emergent qualities of seemingly simple definitions, inspired by things you see in nature."
art  book  graphics  generative 
september 2018 by mechazoidal
"Inspired by ShaderToy, VoxelToy is an experimental website where people can create and share proceduraly generated 3d voxel models.

The syntax of the program is the same as the one used by Goxel."
webapp  voxel  graphics 
september 2018 by mechazoidal
"a 3D program that lets you create voxel volumes, a bit similar to minecraft. The code is Open Source and fully available on Github."
PR: the voxel procedural language is great!
3d  voxel  procedural  graphics  javascript  gamedev  piperesearch 
september 2018 by mechazoidal
better geometry through graph theory
"A few months ago, I decided to implement set operations on curved regions. I had the the canonical textbook on computational geometry, which described approaches for polygons comprised of straight lines, and it seemed like other projects had extended these techniques to parametric curves. I figured it would take a couple of weeks.

Unfortunately, the field of computational geometry embodies a fundamental contradiction. In geometry, the angles of a triangle add up to exactly π radians, and if u is clockwise from v then v must be counter-clockwise from u. Computers, on the other hand, use floating point representations which make a mockery of these simple Euclidean truths."

Note his solution based on error-correcting codes, and the Java implementation.
Also, these examples are for 2d polygon clipping, not sure if it can be extended into 3d.
math  geometry  graph  graphics  algorithms  piperesearch  2d 
september 2018 by mechazoidal
Ogeon/palette: A Rust library for linear color calculations and conversion
"It provides both precision tools that lets you work in exactly the color space you want to, as well as a general color type that abstracts away some of the technical details. [...] This library is only meant for color manipulation and conversion. It's not a fully features image manipulation library. It will only handle colors, and not whole images. There are features that are meant to work as bridges between Palette and other graphical libraries, but the main features are limited to only focus on single pixel operations, to keep the scope at a manageable size."
rust  library  graphics 
august 2018 by mechazoidal
« earlier      
per page:    204080120160

related tags

2d  3d  3d_printing  9slice  accessibility  ACM  adobe  aerospace  ai  algorithms  alice  amazon  amiga  analysis  android  animation  anime  answer  api  apl  app  apple  apps  AR  arcan  archive  archived  archive_it  art  article  ascii  asm.js  assembly  audio  augmentedreality  autodesk  avr  beanshell  bezier  blender  blending  blog  boeing  book  books  buildings  button  c  c++  cad  cairo  calculus  cats  cg  character  chart  cities  clojure  clojurescript  code  cola  color  colors  comics  comment  compilers  compositing  compression  computer  computers  computer_vision  concurrency  contextfree  converter  cryptography  css  curves  d3  data  datamining  datastructures  dead_link  debugging  demo  demoscene  deprecated  design  development  diagrams  direct3d  directx  discussion  disney  display  displayport  documentation  dolphin  dome  dos  drawing  drivers  ds  editor  education  effects  electronics  elm  embedded  emulation  emulator  engine  example  facme  faq  Farbrausch  ffmpeg  fightman  filmmaking  flame  flickr  fonts  forum  fractal  framework  free  freeware  frep  friends  from:gamasutra  from:historylink  from:ltu  from:medium  frp  fun  ga  gallery  gamasutra  game  gamedev  games  game_concepts  gamma  generative  generator  geography  geometry  gif  gimp  gist  github  glsl  gnome  gpu  grammar  graph  graphics  gui  hacks  hardware  haskell  hdmi  history  hmd  homebrew  howto  html  html5  humor  icon  icons  illusions  illustration  illustrator  image  images  inferno  infographics  input  inspiration  intel  interaction  interactive  interface  interview  ios  isometric  itunes  japan  java  java2d  javascript  jit  jogl  l-systems  language  languages  latex  layout  learning  libraries  library  lighttable  linear_algebra  linux  lisp  list  live2d  livecoding  llvm  lobsters  logo  lua  mac  machine_learning  manga  map  maps  math  mathbox  matrix  meander  mesh  metal  microsoft  mixedreality  mmo  modeling  models  mouse  movies  mozilla  multimedia  multipart  music  nanovg  nasa  network  neuralnetworks  nintendo  node  nodejs  nostalgia  notation  npm  nvidia  ogg  ogre  ogre3d  om  online  opencores  opengl  opensource  optical  optics  optimization  optimizer  oscilloscope  osdev  osl  osx  paper  paperman  papers  patterns  pdf  perception  photo  photography  photos  photoshop  physics  pipeline  piperesearch  pixar  pixel  pixelart  plan9  pmz  png  podcast  post  posters  postmortem  postscript  presentation  procedural  processing  production  programming  projection  prolog  psx  python  rails  random  raytracer  raytracing  reactjs  reference  renderer  rendering  repo  repo:github  research  resource  resources  retopo  retro  retrocomputing  retrogaming  reverse_engineering  ruby  rust  scenegraph  scheme  science  screensaver  sdf  seattle  sfml  sgi  shaders  shading  shmups  shopping  siggraph  signed-distance  signs  simulation  simulator  sixel  skeletal  sketchup  slides  slideshare  softimage  software  Sony  source  spaceship  specification  spir-v  sprites  stackoverflow  stickers  store  streaming  structure  suckless  sunflow  svg  swing  tech  terminal  terrain  test  testing  tex  text  texture  textures  texturing  themes  threejs  tips  to-read  tools  touchscreen  travel  tutorial  tutorials  tv  tweet  tweets  typefaces  typography  ui  unicode  unity3d  unix  usability  usb  utilities  uv  ux  validator  vector  verse  vfx  vgc  video  video:youtube  vision  visual  visualization  voxel  voxels  vpri  vr  vrml  vulkan  warning  wayland  wa_state  web  webapp  webdesign  webdev  webgl  wiki  windowmanager  windows  wm  workflow  writing  x11  x86  xr 

Copy this bookmark: