A New Algorithm for 3D Isovist
SULEIMAN Wassim 1 ,
JOLIVEAU Thierry 1 ,
FAVIER Eric 2
1 ISTHME-ISIG CNRS/UMR EVS, Université Jean Monnet - Saint-Etienne.
2 DIPI EA 3719 École Nationale d'Ingénieurs de Saint-Etienne wassim.suleiman@univ-st-etienne.fr
thierry.joliveau@univ-st-etienne.fr
eric.favier@enise.fr
SAGEO 2012 – 7 November 2012 in Liege, Belgium
1
Isovist
Isovist : the visible space from a given point in space.
Fields of use :
■
■
■
■
■
Urban and landscape planning
Navigation systems
Visual surveillance
Publicity placement
Wireless Network architecture
2
Main technique for computing Isovist : ray tracing
2D Vector data 2.5D Raster data
Number of rays ?
Resolution ?
Brossard & Wieber
3
2.5 and 3D Isovist solutions
2,5 Raster mode
(Public Eye)
Limitations ?
Voxel mode
(Pyysalo et al. 2009), (Morello & Ratti 2009)
• The identity and the individuality of the special entities
(buildings for example) is lost
• The precision is related to the resolution
4
New algorithms for computing ISOVIST in 2D and 3D
The principle is to analyze how the spatial entities
(buildings) block the line-of-sight.
The isovist will be considered as a group of vision angle associated with spatial entities or free space (if there is no building blocking the sight).
5
New algorithm for 2D ISOVIST
Assumption
■
2D space is an aggregation of segments.
■
We will use the polar coordinates centered at the observer point.
6
New algorithm for 2D ISOVIST
Definition
■
The angle of vision for 𝑆𝑒𝑔𝑚𝑒𝑛𝑡
𝐼
[𝜃1 𝜃2
𝐼
𝐼
| .
, 𝜃2
𝐼 is the angular interval , 𝐴𝑉𝑆
𝐼
] . The module of the angle of vision is: |𝐴𝑉𝑆
𝐼
| = |𝜃1
𝐼
−
=
7
New algorithm for 2D ISOVIST
Definition
■
The free segment is a segment whose the two ends are visible by the observer.
8
New algorithm for 2D ISOVIST
Definition
■
The free vision field is an angle of vision where there is no obstacle blocking the line of sight.
9
New algorithm for 2D ISOVIST
Algorithm
BEGIN
Initialize FVF = [0,2π] , BVF= ∅
While (S ≠ ∅ ) do:
■
■
■
Search for the free segments in S, and then order them with the increasing |𝐴𝑉𝑆
𝐼
| . F = Seg c
, Seg v
, Seg t
, … … .
While (F ≠ ∅ )do:
= {[θ1c, θ2c] ∩ FVF}
(Seg c
) blocks the visibility in the angles 𝐴 𝑐
BVF = BVF ∪ 𝐴 𝑐
S = S – Seg c
, F=FSeg c
FVF = FVF 𝐴 𝑐
.
ENDWHILE
■
Eliminate all segments who have angle of vision out of the free vision field from S. (i.e., the intersection between their angle of vision and the free vision field is empty).
ENDWHILE
RETURN Results = FVF ∪ BVF.
END.
10
New algorithm for 2D ISOVIST
The complexity
For environnement with N 2D segments, the complexity is in order of
N*log(N)
Comparison with ray tracing, for R ray tracing, The complexity is in order of (R+N)*log(R+N)
For precision of 10^-6 rad, we need R= 2*π*10^6 ≈ 6,283,000 !!!
11
New algorithm for 2D ISOVIST
Implementation : virtual environment on Matlab
12
New algorithm for 2D ISOVIST
Implementation : real GIS data on Matlab
13
New algorithm for 2D ISOVIST
Autonome application using VB.NET langage
Execution time less than 10 sec
14
A new algorithm for computing 3D
Isovist
Assumption
■
All surfaces in the 3D environment are an aggregation of polygons.
■
Each polygon ( Polygon i
) is presented by its projection on the unit sphere centered at the observer point.
15
A new algorithm for computing 3D
Isovist
The projection on the unit sphere centered at the observer point.
1
Observer
Projection
Polygon
16
A new algorithm for computing 3D
Isovist
Definitions
■ 𝑆𝐴𝑉𝑃
𝐼
(the solid angle of vision for its projection over the unit sphere.
𝑃𝑜𝑙𝑦𝑔𝑜𝑛
𝐼
) is the surface of
17
A new algorithm for computing 3D Isovist
Definitions
■
The free polygon is a polygon whose edges (or the enclosed frontier segments) are visible from the observer.
18
A new algorithm for computing 3D Isovist
Definitions
■
The free vision field is a solid angle of vision where no obstacle is blocking the line of sight.
19
A new algorithm for computing 3D Isovist
Algorithm
BEGIN
Initializing FS= {the entire unit sphere}, BS = ∅ .
While (P ≠ ∅ ) do :
■
■
■
Search for the free polygons. And order them with the increasing |SAVP
I
[Polygon c
, Polygon v
, Polygon t
, … … ] .
|, F =
While (F ≠ ∅ ) do:
= 𝑆𝐴𝑉𝑃 𝑐
∩ FS.
(Polygon c
) blocks the visibility in the solid angles 𝑆𝐴 𝑐
BS = BS ∪ 𝑆𝐴 𝑐
P = P -
FS=FS -
ENDWHILE
Polygon
𝑆𝐴 𝑐
. c
, F = F Polygon c
.
■
Eliminate all polygons how have angle of vision out of the free vision field (the intersection between their solid angle of vision and the free vision field is empty) from P.
ENDWHILE
RETURN Results = FS ∪ BS
END.
20
A new algorithm for computing 3D Isovist
The complexity
For environnement with P 3D polygons the complexity is in order of P
(3D segment – polygon intersection)
Comparison with ray tracing, for R ray tracing, The complexity is in order of (R+P) (3D segment – polygon intersection)
For precision of 10^-3 rad, we need
R= (π*10^3)*(2*π*10^3) ≈ 19,739,000 !!!
21
A new algorithm for computing 3D Isovist
Implementation on Matlab
Execution time about 2 min
22
A new algorithm for computing 3D Isovist
Autonome application using C# langage
Execution time less than 30 sec
23
A new algorithm for computing 3D Isovist
Autonome application using C# langage
24
A new algorithm for computing 3D Isovist
Arcscene Addin to export the results in format Esri multipatch
25
Conclusion
We propose a new algorithm for computing Isovist in
2D and 3D environment with non-flat topographical surface.
The new algorithm is faster than usual ray tracing method.
We develop a stand alone program to calculate the isovist in 2D and 3D with the possibility to export the result as Esri shape file like (points-polygons-3D multipatch).
26
Future work
Using parallel processing like using cuda over GPU.
Thinking about meaning and definition of 3D Visibility indices (space syntax).
27
Suleiman Wassim wassim.suleiman@univ-st-etienne.fr
28