I am trying to implement a hidden surface determination algorithm in my 3D renderer. I have found very good approaches, such as Z-Buffer or Warnock's algorithm. However, they are extremely resource-consuming. Thus I wondered, Why not use opaque overlapping colours, with which I could get the same visual results?. I would like to receive some feedback an opinions before going further, and in case it turns out to be a good solution, of course, to use this post as a way of sharing it with the community. The method would basically come down to: 1) Ordering all polygons in the scene by their Z coordinate 2)Rendering all of them in order, using opaque colours. The image/view/visual effect would be the same, without having to resort to a costly pixel-by-pixel computational process. (Example: say I have two intersecting polygons (P1, P2). Given that the viewer's closest Z coordinate is 0, if P1z=10 and P2z=3, then the rendering order would be: P2>P1. When drawn, P2's colour will cover those P1's edges and colours placed in the 2D-XY-intersection between the two polygons ) What cons do you think this could have? Do you think that it would suffice the problem? PS: I do not use polygonal meshes, the 3D-objects to be processed are simple convex and concave figures.
Hidden and visible surface rendering in javascript by overlapping colours
130 views Asked by Jorge Llombart At
1
There are 1 answers
Related Questions in JAVASCRIPT
- Using Puppeteer to scrape a public API only when the data changes
- inline SVG text (js)
- An array of images and a for loop display the buttons. How to assign each button to open its own block by name?
- Storing the preferred font-size in localStorage
- Simple movie API request not showing up in the console log
- Authenticate Flask rest API
- Deploying sveltekit app with gunjs on vercel throws cannot find module './lib/text-encoding'
- How to request administrator rights?
- mp4 embedded videos within github pages website not loading
- Scrimba tutorial was working, suddenly stopped even trying the default
- In Datatables, start value resets to 0, when column sorting
- How do I link two models in mongoose?
- parameter values only being sent to certain columns in google sheet?
- Run main several times of wasm in browser
- Variable inside a Variable, not updating
Related Questions in 3D
- Issues with a rotation gizmo and sign flips when converting back to euler angles
- coded one, but renderer renders two 3D models in three.js
- WorldToScreen function
- Sweep shape along 3D path in Python
- How to add another panel or window to the open3d.visualization.O3DVisualizer class? (In python open3d)
- How to estimate the memory size of a binary voxelized geometry?
- LibGDX Normal Textures Not Showing Up in 3D (Blender) Model Java
- A way to warp an image based on a map
- 3D surface won't show data on plotly
- Creating 3D python data from index sums of 2D data
- 3D graph in Rstudio (time vs intensity vs coefficient)
- Combining multiple plots with mayavi
- JavaFX 3D API does not work on all Android deivces
- Manual retargeting - How to compute target pose bone positions correctly?
- How do I dynamically change vertex colors using Direct3d 12 and Visual C++?
Related Questions in HTML5-CANVAS
- Can I pre-scale and cache Images?
- SigmaJS: Create a snapshot of "sigma-containter"
- MediaPipe segmentation mask for Pose Detection Web
- Canvas element having padding + scrollbar
- openfl canvas toDataUrl() return blank image
- CSS animation is not reaching to last element
- Using HTML Canvas, how can I maintain the border-image width of the left and right border to be the same as the top and bottom?
- Resize nodes bug
- How to make layer of different color mask on a image or a div element
- How to relate canvas drawing objects with canvas controller objects in flutter (in SOLID correspondence)?
- Making canvas background transparent
- Where is the bug in this Canvas implementation of Conway's Game of Life?
- How to fix Document is not defined when creating a canvas in Angular
- Tried to create a class for a button creating, but didn't get it with Canvas Context
- finding a point and its angle on a cubic Bezier curve in JavaScript
Related Questions in RENDERING
- How to render sprites for a snake game using SFML and C++
- Rendering a visualisation of matrix using pygame
- How to output latex embedded in dataframe into jupyterbook
- Decal renderer does not discard pixels properly
- Server side rendering and client side rendering
- Can I bake building silhouettes into a skybox in Unity?
- Sync buffer between queue on Vulkan
- VTK render error:vtkShaderProgram (00000289700E3F20): ERROR: 0:216: '' : expect an array name
- useFormik can not get initial values from response by useQuery?
- What happens when rendering an OpenGL buffer that has been padded with NULL (or another value)?
- Server Side Rendering of Dynamic URL using NUXT 3
- How to resolve possibly conflicting urls in webpage rendering
- How to detect if a widget is visible or not in Flutter
- burger-menu bug with react (flickering)
- DOT Layout Forcing Graph Into 2 Levels
Related Questions in ZBUFFER
- C++ 3D software rasteriser depth buffer producing incorrect results
- Blender : How to select only viewable objects?
- Disabling Depth Test Gives Weird Artifacts For Complex Meshes
- Using a second z-buffer as a stencil buffer (depth-stencil test)
- Dummy camera clears the depth buffer
- Minimalist Sphere Impostor -- computing sphere radius in zdepth
- Z Buffer Not Working Correctly (Not Displaying Anything)
- How to find the depth of a pixel using two x y and z coordinates
- Hidden and visible surface rendering in javascript by overlapping colours
- get simulated depth image from matlab figure
- Direct3D 9 Z-Buffer Precision Bug occuring only in release build
- What is hidden surface problem and why does z buffer precision even matter?
- Calculating individual distances from a Camera in a 3D world, Java
- Implementing Z Buffer Algorithm
- OpenGL optimizing skybox rendering
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Popular Tags
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Polygons can intersect (even partially) and determine what part of one polygon is in front of the other it's a very expensive computation.