Skip to content
Snippets Groups Projects
Commit 780be2c3 authored by tw00275's avatar tw00275
Browse files

Ceres solves for light intensity and distance instead of image gain and bias

parent 6e592fa5
No related branches found
No related tags found
No related merge requests found
No preview for this file type
......@@ -17,25 +17,27 @@ using ceres::Problem;
using ceres::Solver;
using ceres::Solve;*/
void specularMinimisation(double& SpecularIntensity, double& SpecularPower, double& Gain, double& Bias, std::string imageName, double residualValue, cv::Vec3d residual, double totalResidual, cv::Mat residualImage, glm::mat4 depthProjectionMatrix, glm::mat4 depthViewMatrix, double width, int height, int numberOfLights, GLuint SpecularIntensityID, GLuint SpecularPowerID, GLuint programID, GLuint ModelMatrixID, GLuint ViewMatrixID, GLuint DepthBiasID, GLuint lightInvDirID, GLuint Texture, GLuint TextureID, GLuint depthTexture, GLuint ShadowMapID, GLuint vertexbuffer, GLuint uvbuffer, GLuint normalbuffer, GLuint elementbuffer, std::vector<unsigned int> indices, GLuint MatrixID, glm::mat4 ModelMatrix, glm::mat4 MVP, glm::mat4 ViewMatrix, glm::mat4 depthBiasMVP, std::vector<glm::vec3> lightInvDirs, std::vector<cv::Mat> textureImages);
void specularMinimisation(double& SpecularIntensity, double& SpecularPower, double& Gain, double& Bias, std::string imageName, double residualValue, cv::Vec3d residual, double totalResidual, cv::Mat residualImage, glm::mat4 depthProjectionMatrix, glm::mat4 depthViewMatrix, double width, int height, int numberOfLights, GLuint SpecularIntensityID, GLuint SpecularPowerID, GLuint DistancePowerID, GLuint LightPowerID, GLuint programID, GLuint ModelMatrixID, GLuint ViewMatrixID, GLuint DepthBiasID, GLuint lightInvDirID, GLuint Texture, GLuint TextureID, GLuint depthTexture, GLuint ShadowMapID, GLuint vertexbuffer, GLuint uvbuffer, GLuint normalbuffer, GLuint elementbuffer, std::vector<unsigned int> indices, GLuint MatrixID, glm::mat4 ModelMatrix, glm::mat4 MVP, glm::mat4 ViewMatrix, glm::mat4 depthBiasMVP, std::vector<glm::vec3> lightInvDirs, std::vector<cv::Mat> textureImages);
void outputToFile(std::string outputFileName, double specularIntensity, double specularPower, double gain, double bias, double resiudal);
class MyScalarCostFunctor {
public:
MyScalarCostFunctor(std::string outputFileName, double residualValue, cv::Vec3d residual, double totalResidual, cv::Mat residualImage, glm::mat4 depthProjectionMatrix, glm::mat4 depthViewMatrix, int width, int height, int numberOfLights, GLuint SpecularIntensityID, GLuint SpecularPowerID, GLuint programID, GLuint ModelMatrixID, GLuint ViewMatrixID, GLuint DepthBiasID, GLuint lightInvDirID, GLuint Texture, GLuint TextureID, GLuint depthTexture, GLuint ShadowMapID, GLuint vertexbuffer, GLuint uvbuffer, GLuint normalbuffer, GLuint elementbuffer, std::vector<unsigned int> indices, GLuint MatrixID, glm::mat4 ModelMatrix, glm::mat4 MVP, glm::mat4 ViewMatrix, glm::mat4 depthBiasMVP, std::vector<glm::vec3> lightInvDirs, std::vector<cv::Mat> textureImages):outputFileName_(outputFileName), residualValue_(residualValue), residual_(residual), totalResidual_(totalResidual), residualImage_(residualImage), depthProjectionMatrix_(depthProjectionMatrix), depthViewMatrix_(depthViewMatrix), width_(width), height_(height), numberOfLights_(numberOfLights), SpecularIntensityID_(SpecularIntensityID), SpecularPowerID_(SpecularPowerID), programID_(programID), ModelMatrixID_(ModelMatrixID), ViewMatrixID_(ViewMatrixID), DepthBiasID_(DepthBiasID), lightInvDirID_(lightInvDirID), Texture_(Texture), TextureID_(TextureID), depthTexture_(depthTexture), ShadowMapID_(ShadowMapID), vertexbuffer_(vertexbuffer), uvbuffer_(uvbuffer), normalbuffer_(normalbuffer), elementbuffer_(elementbuffer), indices_(indices), MatrixID_(MatrixID), ModelMatrix_(ModelMatrix), MVP_(MVP), ViewMatrix_(ViewMatrix), depthBiasMVP_(depthBiasMVP), lightInvDirs_(lightInvDirs), textureImages_(textureImages){}
MyScalarCostFunctor(std::string outputFileName, double residualValue, cv::Vec3d residual, double totalResidual, cv::Mat residualImage, glm::mat4 depthProjectionMatrix, glm::mat4 depthViewMatrix, int width, int height, int numberOfLights, GLuint SpecularIntensityID, GLuint SpecularPowerID, GLuint DistanceID, GLuint LightPowerID, GLuint programID, GLuint ModelMatrixID, GLuint ViewMatrixID, GLuint DepthBiasID, GLuint lightInvDirID, GLuint Texture, GLuint TextureID, GLuint depthTexture, GLuint ShadowMapID, GLuint vertexbuffer, GLuint uvbuffer, GLuint normalbuffer, GLuint elementbuffer, std::vector<unsigned int> indices, GLuint MatrixID, glm::mat4 ModelMatrix, glm::mat4 MVP, glm::mat4 ViewMatrix, glm::mat4 depthBiasMVP, std::vector<glm::vec3> lightInvDirs, std::vector<cv::Mat> textureImages):outputFileName_(outputFileName), residualValue_(residualValue), residual_(residual), totalResidual_(totalResidual), residualImage_(residualImage), depthProjectionMatrix_(depthProjectionMatrix), depthViewMatrix_(depthViewMatrix), width_(width), height_(height), numberOfLights_(numberOfLights), SpecularIntensityID_(SpecularIntensityID), SpecularPowerID_(SpecularPowerID), DistanceID_(DistanceID), LightPowerID_(LightPowerID), programID_(programID), ModelMatrixID_(ModelMatrixID), ViewMatrixID_(ViewMatrixID), DepthBiasID_(DepthBiasID), lightInvDirID_(lightInvDirID), Texture_(Texture), TextureID_(TextureID), depthTexture_(depthTexture), ShadowMapID_(ShadowMapID), vertexbuffer_(vertexbuffer), uvbuffer_(uvbuffer), normalbuffer_(normalbuffer), elementbuffer_(elementbuffer), indices_(indices), MatrixID_(MatrixID), ModelMatrix_(ModelMatrix), MVP_(MVP), ViewMatrix_(ViewMatrix), depthBiasMVP_(depthBiasMVP), lightInvDirs_(lightInvDirs), textureImages_(textureImages){}
bool operator()(const double* const SpecularIntensity, const double* const SpecularPower, const double* const Gain, const double* const Bias, double* residualValue) const {
double specularIntensity = double(SpecularIntensity[0]);
double specularPower = double(SpecularPower[0]);
double gain = double(Gain[0]);
double bias = double(Bias[0]);
double distance = double(Gain[0]);
double lightPower = double(Bias[0]);
double gain = 1.0;
double bias = 0.0;
double sum = 0;
for (int i = 0; i < numberOfLights_; i++) {
// Render the polygons
renderPolygons(width_, height_, programID_, lightInvDirs_[i], MatrixID_, ModelMatrixID_, ViewMatrixID_, DepthBiasID_, lightInvDirID_, Texture_, TextureID_, depthTexture_, ShadowMapID_, vertexbuffer_, uvbuffer_, normalbuffer_, elementbuffer_, indices_, MVP_, ModelMatrix_, ViewMatrix_, depthBiasMVP_, SpecularIntensityID_, specularIntensity, SpecularPowerID_, specularPower);
renderPolygons(width_, height_, programID_, lightInvDirs_[i], MatrixID_, ModelMatrixID_, ViewMatrixID_, DepthBiasID_, lightInvDirID_, Texture_, TextureID_, depthTexture_, ShadowMapID_, vertexbuffer_, uvbuffer_, normalbuffer_, elementbuffer_, indices_, MVP_, ModelMatrix_, ViewMatrix_, depthBiasMVP_, SpecularIntensityID_, specularIntensity, SpecularPowerID_, specularPower, DistanceID_, distance, LightPowerID_, lightPower);
// Calculate the residual
meanSquaredError(i, height_, width_, textureImages_, sum, gain, bias);
......@@ -80,6 +82,8 @@ class MyScalarCostFunctor {
glm::mat4 depthBiasMVP_;
GLuint SpecularIntensityID_;
GLuint SpecularPowerID_;
GLuint DistanceID_;
GLuint LightPowerID_;
double residualValue_;
cv::Vec3d residual_;
......@@ -94,7 +98,7 @@ class MyScalarCostFunctor {
std::string outputFileName_;
};
void specularMinimisation(double& SpecularIntensity, double& SpecularPower, double& Gain, double& Bias, std::string imageName, double residualValue, cv::Vec3d residual, double totalResidual, cv::Mat residualImage, glm::mat4 depthProjectionMatrix, glm::mat4 depthViewMatrix, int width, int height, int numberOfLights, GLuint SpecularIntensityID, GLuint SpecularPowerID, GLuint programID, GLuint ModelMatrixID, GLuint ViewMatrixID, GLuint DepthBiasID, GLuint lightInvDirID, GLuint Texture, GLuint TextureID, GLuint depthTexture, GLuint ShadowMapID, GLuint vertexbuffer, GLuint uvbuffer, GLuint normalbuffer, GLuint elementbuffer, std::vector<unsigned int> indices, GLuint MatrixID, glm::mat4 ModelMatrix, glm::mat4 MVP, glm::mat4 ViewMatrix, glm::mat4 depthBiasMVP, std::vector<glm::vec3> lightInvDirs, std::vector<cv::Mat> textureImages) {
void specularMinimisation(double& SpecularIntensity, double& SpecularPower, double& Gain, double& Bias, std::string imageName, double residualValue, cv::Vec3d residual, double totalResidual, cv::Mat residualImage, glm::mat4 depthProjectionMatrix, glm::mat4 depthViewMatrix, int width, int height, int numberOfLights, GLuint SpecularIntensityID, GLuint SpecularPowerID, GLuint DistanceID, GLuint LightPowerID, GLuint programID, GLuint ModelMatrixID, GLuint ViewMatrixID, GLuint DepthBiasID, GLuint lightInvDirID, GLuint Texture, GLuint TextureID, GLuint depthTexture, GLuint ShadowMapID, GLuint vertexbuffer, GLuint uvbuffer, GLuint normalbuffer, GLuint elementbuffer, std::vector<unsigned int> indices, GLuint MatrixID, glm::mat4 ModelMatrix, glm::mat4 MVP, glm::mat4 ViewMatrix, glm::mat4 depthBiasMVP, std::vector<glm::vec3> lightInvDirs, std::vector<cv::Mat> textureImages) {
// The variable to solve for with its initial value. It will be mutated in place by the solver.
const double initialSpecularIntensity = SpecularIntensity;
......@@ -114,22 +118,24 @@ void specularMinimisation(double& SpecularIntensity, double& SpecularPower, doub
// Set up the only cost function (also known as residual). This uses auto-differentiation to obtain the derivative (jacobian).
// AutoDiffCostFunction<CostFunctor, (Dimensions of Residual), (Dimensions of Variables)>
ceres::CostFunction* cost_function = new NumericDiffCostFunction<MyScalarCostFunctor, CENTRAL, 1, 1, 1, 1, 1>(new MyScalarCostFunctor(outputFileName, residualValue, residual, totalResidual, residualImage, depthProjectionMatrix, depthViewMatrix, width, height, numberOfLights, SpecularIntensityID, SpecularPowerID, programID, ModelMatrixID, ViewMatrixID, DepthBiasID, lightInvDirID, Texture, TextureID, depthTexture, ShadowMapID, vertexbuffer, uvbuffer, normalbuffer, elementbuffer, indices, MatrixID, ModelMatrix, MVP, ViewMatrix, depthBiasMVP, lightInvDirs, textureImages));
ceres::CostFunction* cost_function = new NumericDiffCostFunction<MyScalarCostFunctor, CENTRAL, 1, 1, 1, 1, 1>(new MyScalarCostFunctor(outputFileName, residualValue, residual, totalResidual, residualImage, depthProjectionMatrix, depthViewMatrix, width, height, numberOfLights, SpecularIntensityID, SpecularPowerID, DistanceID, LightPowerID, programID, ModelMatrixID, ViewMatrixID, DepthBiasID, lightInvDirID, Texture, TextureID, depthTexture, ShadowMapID, vertexbuffer, uvbuffer, normalbuffer, elementbuffer, indices, MatrixID, ModelMatrix, MVP, ViewMatrix, depthBiasMVP, lightInvDirs, textureImages));
std::vector<ceres::ResidualBlockId> residual_block_ids;
ceres::ResidualBlockId block_id = problem.AddResidualBlock(cost_function, NULL, &SpecularIntensity, &SpecularPower, &Gain, &Bias);
residual_block_ids.push_back(block_id);
problem.SetParameterLowerBound(&SpecularIntensity, 0, 0);
problem.SetParameterUpperBound(&SpecularIntensity, 0, 1);
problem.SetParameterLowerBound(&SpecularPower, 0, 0.01);
problem.SetParameterLowerBound(&Gain, 0, 0);
problem.SetParameterUpperBound(&Gain, 0, 2);
problem.SetParameterLowerBound(&SpecularPower, 0, 0);
problem.SetParameterUpperBound(&SpecularPower, 0, 1);
//problem.SetParameterLowerBound(&SpecularPower, 0, 0.01);
//problem.SetParameterLowerBound(&Gain, 0, 0);
//problem.SetParameterUpperBound(&Gain, 0, 2);
//problem.SetParameterBlockConstant(&Gain);
//problem.SetParameterBlockConstant(&Bias);
/*problem.SetParameterLowerBound(&Gain, 0, 0);
problem.SetParameterUpperBound(&Gain, 0, 2);
problem.SetParameterLowerBound(&Bias, 0, -1);
problem.SetParameterUpperBound(&Bias, 0, 1);*/
problem.SetParameterLowerBound(&Gain, 0, 0);
//problem.SetParameterUpperBound(&Gain, 0, 2);
problem.SetParameterLowerBound(&Bias, 0, 0);
//problem.SetParameterUpperBound(&Bias, 0, 1);
// Run the solver
Solver::Options options;
......
This diff is collapsed.
......@@ -3,9 +3,9 @@
// Interpolated values from the vertex shaders
in vec2 UV;
in vec3 Normal_cameraspace;
in vec3 Normal_worldspace;
//in vec3 Normal_worldspace;
in vec3 EyeDirection_cameraspace;
in vec3 EyeDirection_worldspace;
//in vec3 EyeDirection_worldspace;
in vec3 LightDirection_cameraspace;
in vec3 LightDirection_worldspace;
in vec4 ShadowCoord;
......@@ -25,6 +25,8 @@ uniform float specularIntensity;
uniform float specularPower;
//uniform float roughness;
//uniform float metallic;
uniform float distance;
uniform float lightPower;
const float PI = 3.14159265359;
......@@ -119,9 +121,11 @@ void main() {
// calculate per-light radiance
vec3 L = normalize(LightDirection_worldspace - Position_worldspace);
vec3 H = normalize(V + L);
float distance = length(LightPosition_worldspace - Position_worldspace);
//float distance = length(LightPosition_worldspace - Position_worldspace);
//float distance = 0.5f;
float attenuation = 1.0 / (distance * distance);
vec3 LightColor = vec3(1, 1, 1);
//float lightPower = 1.0f;
vec3 LightColor = vec3(lightPower, lightPower, lightPower);
vec3 radiance = LightColor * attenuation;
// cook-torrance brdf
......
......@@ -40,7 +40,7 @@ void main() {
// Vector that goes from the vertex to the camera, in camera space.
// In camera space, the camera is at the origin (0,0,0).
EyeDirection_cameraspace = vec3(0,0,0) - ( V * M * vec4(vertexPosition_modelspace, 1)).xyz;
EyeDirection_worldspace = vec3(0,0,0) - ( M * vec4(vertexPosition_modelspace, 1)).xyz;
//EyeDirection_worldspace = vec3(0,0,0) - ( M * vec4(vertexPosition_modelspace, 1)).xyz;
// Vector that goes from the vertex to the light, in camera space
LightDirection_cameraspace = ( V * vec4(LightInvDirection_worldspace, 0)).xyz;
......@@ -48,7 +48,7 @@ void main() {
// Normal of the the vertex, in camera space
Normal_cameraspace = ( V * M * vec4(vertexNormal_modelspace, 0)).xyz; // Only correct if ModelMatrix does not scale the model. Use its inverse transpose if not.
Normal_worldspace = ( M * vec4(vertexNormal_modelspace, 0)).xyz;
//Normal_worldspace = ( M * vec4(vertexNormal_modelspace, 0)).xyz;
// UV of the vertex. No special space for this one.
UV = vertexUV;
......
This diff is collapsed.
......@@ -20,7 +20,7 @@ class SpecularEstimation {
// OpenCV
std::string imageName, modelPath, calibrationPath, calibration = "chrome", imagesPath = "/home/thomas/Documents/", folderPath = "2018-08-31", macbethPath = imagesPath + folderPath + "/macbeth/macbeth.", albedoPath = modelPath + "albedo.png", normalPath = modelPath + "normal.png", texturePath = modelPath + "texture.png";
int width = 1092, height = 728, numberOfLights = 6, lightNumber = 0;
double SpecularIntensity, SpecularPower, SpecularIntensitySynthetic, SpecularPowerSynthetic, totalResidual, residualValue, Gain = 1.0, Bias = 0.0;
double SpecularIntensity, SpecularPower, SpecularIntensitySynthetic, SpecularPowerSynthetic, Distance = 1.0, LightPower = 1.0, totalResidual, residualValue, Gain = 1.0, Bias = 0.0;
bool calculateResidual = false, perspectiveProjection = false, shadowControl = false, denseSample = false;
std::vector<unsigned int> indices;
......@@ -37,7 +37,7 @@ class SpecularEstimation {
std::vector<glm::vec3> lightInvDirs;
// OpenGL
GLuint programID, MatrixID, ModelMatrixID, ViewMatrixID, DepthBiasID, lightInvDirID, Texture, TextureID, depthTexture, ShadowMapID, vertexbuffer, uvbuffer, normalbuffer, elementbuffer, depthProgramID, quad_programID, FramebufferName, quad_vertexbuffer, VertexArrayID, SpecularIntensityID, SpecularPowerID;
GLuint programID, MatrixID, ModelMatrixID, ViewMatrixID, DepthBiasID, lightInvDirID, Texture, TextureID, depthTexture, ShadowMapID, vertexbuffer, uvbuffer, normalbuffer, elementbuffer, depthProgramID, quad_programID, FramebufferName, quad_vertexbuffer, VertexArrayID, SpecularIntensityID, SpecularPowerID, DistanceID, LightPowerID;
glm::vec3 position, lightInvDir;
glm::mat4 depthProjectionMatrix, depthViewMatrix, depthModelMatrix = glm::mat4(1.0), depthMVP, ModelMatrix = glm::mat4(1.0), MVP, ViewMatrix, depthBiasMVP, ProjectionMatrix, biasMatrix = glm::mat4(0.5, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.5, 0.5, 0.5, 1.0);
float horizontalAngle, verticalAngle, FoV;
......
No preview for this file type
Specular Intensity Specular Power Gain Bias Resiudal
0.5 0.5 1 0 12358.7
0.5 0.5 1 0 12358.7
0.499999 0.5 1 0 12358.7
0.5 0.5 1 0 12358.7
0.5 0.499999 1 0 12358.7
0.5 0.5 1 0 12358.7
0.5 0.5 1 0 12358.7
0.5 0.5 1 0 12358.7
0.5 0.5 1 0 12358.7
0.5 0.5 1 0 12358.7
Specular Intensity Specular Power Gain Bias Resiudal
0.5 0.5 1 0 9993.73
0.5 0.5 1 0 9993.73
0.499999 0.5 1 0 9993.73
0.5 0.5 1 0 9993.73
0.5 0.499999 1 0 9993.73
0.5 0.5 1 0 9993.73
0.5 0.5 1 0 9993.72
0.5 0.5 1 0 9993.73
0.5 0.5 1 0 9993.73
1 0 1 0 12358.7
1 0 1 0 12358.7
0.999999 0 1 0 12358.7
1 1.49012e-08 1 0 12358.7
1 -1.49012e-08 1 0 12358.7
1 0 1 0 23815
1 0 1 0 23815
1 0 1 0 12358.7
1 0 1 0 12358.7
0.773644 0.176872 1 0 7592.52
0.773644 0.176872 1 0 7592.52
0.773643 0.176872 1 0 7592.52
0.773644 0.176872 1 0 7592.52
0.773644 0.176871 1 0 7592.52
0.773644 0.176872 1 0 7592.52
0.773644 0.176872 1 0 7592.52
0.773644 0.176872 1 0 7592.52
0.773644 0.176872 1 0 7592.52
0.773644 0.176872 1 0 7592.52
0.773644 0.176872 1 0 7592.52
0.773644 0.176872 1 0 7592.52
0.773643 0.176872 1 0 7592.52
0.773644 0.176872 1 0 7592.52
0.773644 0.176871 1 0 7592.52
0.773644 0.176872 1 0 7592.52
0.773644 0.176872 1 0 7592.52
0.773644 0.176872 1 0 7592.52
0.773644 0.176872 1 0 7592.52
0 0 1 0 12011.7
1.49012e-08 0 1 0 12011.7
-1.49012e-08 0 1 0 12011.7
0 1.49012e-08 1 0 12011.7
0 -1.49012e-08 1 0 12011.7
0 0 1 0 12011.7
0 0 1 0 12011.7
0 0 1 0 12011.7
0 0 1 0 12011.7
0.515168 0.0637104 1 0 7309.38
0.515169 0.0637104 1 0 7309.37
0.515167 0.0637104 1 0 7309.38
0.515168 0.0637104 1 0 7309.38
0.515168 0.0637103 1 0 7309.38
0.515168 0.0637104 1 0 7309.38
0.515168 0.0637104 1 0 7309.37
0.515168 0.0637104 1 0 7309.37
0.515168 0.0637104 1 0 7309.38
0.515168 0.0637104 1 0 7309.38
0.515168 0.0637104 1 0 7309.38
0.515169 0.0637104 1 0 7309.37
0.515167 0.0637104 1 0 7309.38
0.515168 0.0637104 1 0 7309.38
0.515168 0.0637103 1 0 7309.38
0.515168 0.0637104 1 0 7309.38
0.515168 0.0637104 1 0 7309.37
0.515168 0.0637104 1 0 7309.37
0.515168 0.0637104 1 0 7309.38
0.864294 0 1 0 3059.56
0.864295 0 1 0 3059.56
0.864293 0 1 0 3059.57
0.864294 1.49012e-08 1 0 3059.56
0.864294 -1.49012e-08 1 0 3059.56
0.864294 0 1 0 3059.56
0.864294 0 1 0 3059.56
0.864294 0 1 0 3059.56
0.864294 0 1 0 3059.56
0.864294 0 1 0 3059.56
0.864294 0 1 0 3059.56
0.864295 0 1 0 3059.56
0.864293 0 1 0 3059.57
0.864294 1.49012e-08 1 0 3059.56
0.864294 -1.49012e-08 1 0 3059.56
0.864294 0 1 0 3059.56
0.864294 0 1 0 3059.56
0.864294 0 1 0 3059.56
0.864294 0 1 0 3059.56
1 0 1 0 12358.7
1 0 1 0 12358.7
0.999999 0 1 0 12358.7
1 1.49012e-08 1 0 12358.7
1 -1.49012e-08 1 0 12358.7
1 0 1 0 12358.7
1 0 1 0 12358.7
1 0 1 0 12358.7
1 0 1 0 12358.7
0.868882 0 1 0 3012.8
0.868883 0 1 0 3012.79
0.868881 0 1 0 3012.8
0.868882 1.49012e-08 1 0 3012.8
0.868882 -1.49012e-08 1 0 3012.8
0.868882 0 1 0 3012.8
0.868882 0 1 0 3012.8
0.868882 0 1 0 3012.8
0.868882 0 1 0 3012.8
0.868882 0 1 0 3012.8
0.868882 0 1 0 3012.8
0.868883 0 1 0 3012.79
0.868881 0 1 0 3012.8
0.868882 1.49012e-08 1 0 3012.8
0.868882 -1.49012e-08 1 0 3012.8
0.868882 0 1 0 3012.8
0.868882 0 1 0 3012.8
0.868882 0 1 0 3012.8
0.868882 0 1 0 3012.8
1 0 1 0 12358.7
1 0 1 0 12358.7
0.999999 0 1 0 12358.7
1 1.49012e-08 1 0 12358.7
1 -1.49012e-08 1 0 12358.7
1 0 1 0 12358.7
1 0 1 0 12358.7
1 0 1 0 12358.7
1 0 1 0 12358.7
0.874456 0 1 0 2980.11
0.874457 0 1 0 2980.11
0.874455 0 1 0 2980.12
0.874456 1.49012e-08 1 0 2980.11
0.874456 -1.49012e-08 1 0 2980.11
0.874456 0 1 0 2980.11
0.874456 0 1 0 2980.11
0.874456 0 1 0 2980.11
0.874456 0 1 0 2980.11
0.874456 0 1 0 2980.11
0.874456 0 1 0 2980.11
0.874457 0 1 0 2980.11
0.874455 0 1 0 2980.12
0.874456 1.49012e-08 1 0 2980.11
0.874456 -1.49012e-08 1 0 2980.11
0.874456 0 1 0 2980.11
0.874456 0 1 0 2980.11
0.874456 0 1 0 2980.11
0.874456 0 1 0 2980.11
1 0 1 0 12358.7
1 0 1 0 12358.7
0.999999 0 1 0 12358.7
1 1.49012e-08 1 0 12358.7
1 -1.49012e-08 1 0 12358.7
1 0 1 0 12358.7
1 0 1 0 12358.7
1 0 1 0 12358.7
1 0 1 0 12358.7
0.880912 0 1 0 5688.02
0.880913 0 1 0 5688.03
0.880911 0 1 0 5688.02
0.880912 1.49012e-08 1 0 5688.02
0.880912 -1.49012e-08 1 0 5688.02
0.880912 0 1 0 5688.03
0.880912 0 1 0 5688.02
0.880912 0 1 0 5688.02
0.880912 0 1 0 5688.03
0.874486 0 1 0 2980.77
0.874487 0 1 0 2980.77
0.874485 0 1 0 2980.77
0.874486 1.49012e-08 1 0 2980.77
0.874486 -1.49012e-08 1 0 2980.77
0.874486 0 1 0 2980.77
0.874486 0 1 0 2980.77
0.874486 0 1 0 2980.77
0.874486 0 1 0 2980.77
0.874457 0 1 0 2980.14
0.874458 0 1 0 2980.13
0.874457 0 1 0 2980.14
0.874457 1.49012e-08 1 0 2980.14
0.874457 -1.49012e-08 1 0 2980.14
0.874457 0 1 0 2980.14
0.874457 0 1 0 2980.14
0.874457 0 1 0 2980.14
0.874457 0 1 0 2980.14
0.874456 0 1 0 2980.12
0.874457 0 1 0 2980.11
0.874455 0 1 0 2980.12
0.874456 1.49012e-08 1 0 2980.12
0.874456 -1.49012e-08 1 0 2980.12
0.874456 0 1 0 2980.12
0.874456 0 1 0 2980.12
0.874456 0 1 0 2980.12
0.874456 0 1 0 2980.12
0.874456 0 1 0 2980.11
0.874457 0 1 0 2980.11
0.874455 0 1 0 2980.12
0.874456 1.49012e-08 1 0 2980.11
0.874456 -1.49012e-08 1 0 2980.11
0.874456 0 1 0 2980.11
0.874456 0 1 0 2980.11
0.874456 0 1 0 2980.11
0.874456 0 1 0 2980.11
0.874456 0 1 0 2980.11
0.874457 0 1 0 2980.11
0.874455 0 1 0 2980.12
0.874456 1.49012e-08 1 0 2980.11
0.874456 -1.49012e-08 1 0 2980.11
0.874456 0 1 0 2980.11
0.874456 0 1 0 2980.11
0.874456 0 1 0 2980.11
0.874456 0 1 0 2980.11
0.874456 0 1 0 2980.11
0.874456 0 1 0 2980.11
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment