summaryrefslogtreecommitdiff
path: root/rspl/gam.c
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff-webhosting.net>2017-12-01 10:32:14 +0100
committerJörg Frings-Fürst <debian@jff-webhosting.net>2017-12-01 10:32:14 +0100
commit4097e27114d227692d53c5d28487e12a3833cd24 (patch)
treed5c2a62c4db97de94f92150340612c64d3997669 /rspl/gam.c
parentf8a0a4e1c775a90c313cb83201eec4cea4e9a7da (diff)
parent5514d94483c98e3320b202b1bb882023a7d12027 (diff)
Merge branch 'feature/upstream' into develop
Diffstat (limited to 'rspl/gam.c')
-rwxr-xr-x[-rw-r--r--]rspl/gam.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/rspl/gam.c b/rspl/gam.c
index 0765e05..2a9a63b 100644..100755
--- a/rspl/gam.c
+++ b/rspl/gam.c
@@ -21,9 +21,14 @@
/*
This probably needs re-writing, since (I think) it doesn't take gamut
- self intersection into account. Outline would be:
+ self intersection into account. The rspl/rec.c code works more
+ reliably, but doesn't cope with concavities that cross the line
+ to the focal point. So can this "surface following" code be
+ adapted to solve this type of problem ?
- Have a spactial cache structure that contains list of potentialy
+ Outline would be:
+
+ Have a spatial cache structure that contains list of potentialy
intersecting triangles for any point. Create this incrementally.
Each triangle can be replaced by a list of fragment triangles
sharing the same plane.
@@ -61,6 +66,9 @@
Each intersection adds new nodes, and splits a triangle into
about 8 smaller triangles. Trick is to avoid slivers and
numerical issues with triangles.
+
+ Alternative would be to not split triangles, but just track
+ the line of intersection ?
*/
@@ -72,6 +80,7 @@
Add ink limit support. This be done by breaking
a cell into a fixed geometry of smaller simplexes
by dividing the cell into two on each axis.
+ (rspl/rev.c has code for this ??)
Need to then add scan that detects areas to prune,
that then ties in with rev code to mark such