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 best solutions below
Related Questions in JAVASCRIPT
- Angular Show All When No Filter Is Supplied
- Why does a function show up as not defined
- I count the time the user takes to solve my quiz using Javascript but I want the same time displayed on another page
- Set "More" "Less" font size
- Using pagination on a table in AngularJS
- How to sort these using Javascript or Jquery Most effectively
- how to fill out the table with next values in array with one button
- State with different subviews
- Ajax jQuery firing multiple time display event for the same result
- Getting and passing MVC Model data to AngularJS controller
- Disable variable in eval
- javascript nested loops waiting for user input
- .hover() seems to overwrite .click()
- How to sort a multi-dimensional array by the second array in descending order?
- How do I find the fonts that are not loading in a CORS situation ( MoovWeb )?
Related Questions in 3D
- Is there a way to import Collada files into Java?
- 3d mouse aim camera 3rd person vertical C#
- 3D B-Spline approximation
- MatLab 3-vector plot/mesh with colour-scale
- Matplotlib 3d: surface does not cover a line
- Draw a sphere on a billboard with world normal from a pointlist
- babylon skybox from hell
- Create histogram
- How to get accurate 3D depth from 2D screen mouse click for large scale object in OpenGL?
- Custom WhirlyGlobe Skin
- Converting 2D images to 3D
- How to setup camera to point at object
- Finding 3D coordinate of object
- MATLAB 3D sliding window on a volume
- How to check for collisions in ThreeJS?
Related Questions in HTML5-CANVAS
- How to know whether the mousedown event is occured on where we want in canvas?
- Interactive bend image
- How can I implement a zoom function in a 2D canvas?
- Canvas: Draw backgroundImage of ANOTHER dom element
- Horizontally scaled font via drawText?
- Code works in Chrome v.42 but not in Chrome v.43, why?
- html5 canvas memory leak
- google maps scaleControlOptions changing position of scale on map
- Creating a 'New' spiky label with 24 or above point burst
- CORS on Image Not Working
- Randomly appearing text in html page
- how to draw Highcharts in Three.js
- Load CreateJS canvas from json data
- Dimensions in html5 canvas
- How to scale a pattern before fill in fabricjs
Related Questions in RENDERING
- SDL2 main game loop
- PdfBox issue while changing page
- OpenGL heightmap terrain render does not draw
- Characters arbitrarily being changed
- How to debug transforms in glsl vertex shaders in lwjgl
- How to make PyCollada output multiple meshes to the same scene?
- Pass parameters to rendering using ItemRendering in Sitecore
- Rendering a scene created in Blender with Babylon.js without the Babylon.js default shiny material
- Drupal 7: best way to render arbitrary content directly into <body> while keeping what's in <head>
- Android - active rendering in game loop?
- HTML How to get image to load with less quality
- Why is ListView rendering so slow for certain characters?
- CustomView's "onDraw()"-Method never gets called
- SDL - BlitSurface vs LowerBlit
- Rendering HTML Tags Laravel 5 Blade Templating
Related Questions in ZBUFFER
- When is painter's algorithm required with Z-buffer algorithm?
- Implementation of a simple Z-Buffer in CUDA
- XNA 4.0 shader depth information
- Mathematical view of z-fighting
- Absolute limite to z-buffer (depth buffer) value
- How to save a bitmap as 16-bit in Maxscript?
- Depth buffer mode with several axes in Matlab
- Depth buffer in 2D
- Using OpenGL in Matlab to get depth buffer
- Best Z ordering method for tile-based, cocos2D-iPhone games?
- OpenGL Z order messed up
- Blender : How to select only viewable objects?
- in three.js, alpha channel works inconsistently
- Logarithmic depth buffer linearization
- AS3: Z buffering
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)
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?
Polygons can intersect (even partially) and determine what part of one polygon is in front of the other it's a very expensive computation.