Version 2 (modified by 13 years ago) ( diff ) | ,
---|
Camera Objects
Camera Objects can be created within the ProblemModuleInit routine in problem.f90. To create Cameras you first need to add two USE
statements to your problem.f90
USE Cameras USE Fields
Then in ProblemModuleInit declare a variable pointer of type CameraDef
TYPE(CameraDef), POINTER :: Camera
Then create the Camera and set the various parameters as in the following example
CALL CreateCamera(Camera) Camera%pos = (/4d0,-10d0,4d0/) Camera%UpVector = (/0d0,0d0,1d0/) Camera%Focus = (/4d0,4d0,4d0/) Camera%FOV = (/30d0,3d0/)
- Camera's are currently only used by the Projection Object
Here is a full list of the various Camera parameters with the default values in brackets:
REAL(KIND=qPREC), DIMENSION(3) :: pos = DEFAULTCAMERAPOS ! Will choose a point at a distance in -y to see the entire domain. REAL(KIND=qPREC), DIMENSION(3) :: UpVector=(/0d0,0d0,1d0/) REAL(KIND=qPREC), DIMENSION(3) :: Focus = CENTER !Will select the center of the simulation domain REAL(KIND=qPREC) :: FOV= (/30d0, 30d0/)
- Given the camera position and the focus , we can construct the camera normal vector
- We can then construct the true up vector by making the up vector orthogonal to the camera vector.
and then normalizing
- We can then can get the horizontal vector by crossing the camera vector with the up vector
- Then any given spatial point can be mapped to the image plane by projecting the vector onto the and vectors.
- The volume of a given cell may all be within one pixel - in which the contribution to that pixel is just the amount of material in the cell… But when the cell gets large enough so that it's volume maps to more than one pixel - things get complicated. At that point it becomes better to sample which pixels pass through the cell instead - and calculate the optical depth through the cell… A given cell will have a projected angular size of ~ . Each pixel will subtend an angle of approximately . So when , the method should switch. If we sub sample coarse grids to the same resolution, and we have a min camera distance d', then we can choose a resolution for the projection … Alternatively we can choose the sub-sampling rate so that
- To avoid information loss, the resolution of the image should be
Attachments (11)
- rotating.gif (4.1 MB ) - added by 13 years ago.
- CubeRotate.gif (12.9 MB ) - added by 13 years ago.
-
problem.f90
(3.5 KB
) - added by 10 years ago.
problem.f90 for clump example
-
physics.data
(9.6 KB
) - added by 10 years ago.
physics.data for clump example
-
global.data
(5.2 KB
) - added by 10 years ago.
global.data for clump example
-
problem.data
(324 bytes
) - added by 10 years ago.
problem.data for clump example
-
solver.data
(1.4 KB
) - added by 10 years ago.
solver.data for clump example
-
mesh0000.png
(51.6 KB
) - added by 10 years ago.
mesh illustration for clump example
-
nowind_justclump1_0000.png
(42.0 KB
) - added by 10 years ago.
png for clump example
-
nowind_justclump1.gif
(5.8 MB
) - added by 10 years ago.
movie of clump example
-
problem.data.png
(47.5 KB
) - added by 10 years ago.
png of problem.data file
Note:
See TracWiki
for help on using the wiki.