mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-02-16 00:38:54 -06:00
Commented files for compilation.
This commit is contained in:
@@ -25,7 +25,7 @@
|
||||
include(${OPENSPACE_CMAKE_EXT_DIR}/module_definition.cmake)
|
||||
|
||||
set(HEADER_FILES
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/atmosphere.h
|
||||
#${CMAKE_CURRENT_SOURCE_DIR}/atmosphere.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/rendering/atmosphereraycaster.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderableatmosphere.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/rendering/renderableplanetatmosphere.h
|
||||
|
||||
@@ -997,28 +997,45 @@ namespace openspace {
|
||||
float fScaleFactor = data.camera.scaling().x * pow(10.0, data.camera.scaling().y);
|
||||
//std::cout << "\n Scaling Factor: " << fScaleFactor << std::endl;
|
||||
glm::mat4 fScaleCamTransf = glm::scale(glm::vec3(fScaleFactor));
|
||||
glm::dmat4 dfScaleCamTransf = glm::scale(glm::dvec3(fScaleFactor));
|
||||
_deferredAtmosphereProgramObject->setUniform("scaleTransformMatrix", fScaleCamTransf);
|
||||
//std::cout << "\n fScaleCamTransf: " << glm::to_string(fScaleCamTransf) << std::endl;
|
||||
|
||||
// Object Space to World Space (in meters)
|
||||
glm::mat4 obj2World = glm::translate(glm::mat4(1.0), data.position.vec3()) * transform;
|
||||
glm::dmat4 dObj2World = glm::translate(data.position.dvec3()) * glm::dmat4(transform);
|
||||
_deferredAtmosphereProgramObject->setUniform("objToWorldTransform", obj2World);
|
||||
glm::mat4 world2Obj = glm::inverse(obj2World);
|
||||
glm::dmat4 dWorld2Obj = glm::inverse(dObj2World);
|
||||
_deferredAtmosphereProgramObject->setUniform("worldToObjectTransform", world2Obj);
|
||||
|
||||
// World to Eye Space in OS
|
||||
glm::mat4 world2Eye = fScaleCamTransf * glm::mat4(data.camera.viewRotationMatrix()) *
|
||||
glm::translate(-data.camera.position().vec3());
|
||||
glm::dmat4 dWorld2Eye = dfScaleCamTransf * data.camera.viewRotationMatrix() *
|
||||
glm::translate(-data.camera.position().dvec3());
|
||||
_deferredAtmosphereProgramObject->setUniform("worldToEyeTransform", world2Eye);
|
||||
glm::mat4 eye2World = glm::inverse(world2Eye);
|
||||
glm::dmat4 dEye2World = glm::inverse(dWorld2Eye);
|
||||
_deferredAtmosphereProgramObject->setUniform("eyeToWorldTransform", eye2World);
|
||||
|
||||
// Eye Space in OS to Eye Space in SGCT
|
||||
glm::mat4 eye2View = data.camera.viewMatrix();
|
||||
glm::mat4 osEye2SGCTEye = data.camera.viewMatrix();
|
||||
glm::dmat4 dOsEye2SGCTEye = glm::dmat4(data.camera.viewMatrix());
|
||||
glm::mat4 sgctEye2OSEye = glm::inverse(osEye2SGCTEye);
|
||||
glm::dmat4 dSgctEye2OSEye = glm::inverse(dOsEye2SGCTEye);
|
||||
|
||||
_deferredAtmosphereProgramObject->setUniform("osEye2SGCTEyeTranform", osEye2SGCTEye);
|
||||
_deferredAtmosphereProgramObject->setUniform("sgctEye2OSEyeTranform", sgctEye2OSEye);
|
||||
|
||||
// Eye Space in SGCT to Projection (Clip) Space in SGCT
|
||||
glm::mat4 eye2View = data.camera.projectionMatrix();
|
||||
glm::dmat4 dEye2View = glm::dmat4(data.camera.projectionMatrix());
|
||||
_deferredAtmosphereProgramObject->setUniform("eyeToViewTranform", eye2View);
|
||||
_deferredAtmosphereProgramObject->setUniform("viewToEyeTranform", glm::inverse(eye2View));
|
||||
|
||||
glm::mat4 inverseProjection = glm::inverse(data.camera.projectionMatrix());
|
||||
glm::mat4 inverseProjection = glm::inverse(eye2View);
|
||||
glm::dmat4 dInverseProjection = glm::inverse(dEye2View);
|
||||
_deferredAtmosphereProgramObject->setUniform("inverseSgctProjectionMatrix", inverseProjection);
|
||||
/*std::cout << "\nProjection: " << glm::to_string(data.camera.projectionMatrix()) << std::endl;
|
||||
std::cout << "\nInverse Projection: " << glm::to_string(inverseProjection) << std::endl;*/
|
||||
@@ -1028,6 +1045,15 @@ namespace openspace {
|
||||
glm::translate(glm::mat4(1.0), -data.camera.position().vec3()) *
|
||||
glm::translate(glm::mat4(1.0), data.position.vec3())
|
||||
* transform;
|
||||
|
||||
|
||||
glm::dmat4 dCompleteVertexTransformations = glm::dmat4(data.camera.viewProjectionMatrix()) *
|
||||
data.camera.viewRotationMatrix() *
|
||||
glm::translate(glm::dmat4(1.0), -data.camera.position().dvec3()) *
|
||||
glm::translate(glm::dmat4(1.0), data.position.dvec3())
|
||||
* glm::dmat4(transform);
|
||||
glm::dmat4 dCompleteVertexTransformationsInverse = glm::inverse(dCompleteVertexTransformations);
|
||||
|
||||
_deferredAtmosphereProgramObject->setUniform("completeVertexTransform", completeVertexTransformations);
|
||||
glm::mat4 inverseCompleteVertexTransformations = glm::inverse(completeVertexTransformations);
|
||||
_deferredAtmosphereProgramObject->setUniform("inverseCompleteVertexTransform", inverseCompleteVertexTransformations);
|
||||
@@ -1041,63 +1067,106 @@ namespace openspace {
|
||||
|
||||
|
||||
// Testing Transformations:
|
||||
glm::vec4 planetCenterOrigin = glm::vec4(100000.0, 100000.0, 10.0, 1.0);
|
||||
glm::vec4 planetCenterOrigin = glm::vec4(1000.0, 1000.0, 1000.0, 1.0);
|
||||
glm::dvec4 dPlanetCenterOrigin = glm::vec4(1000.0, 1000.0, 1000.0, 1.0);
|
||||
//std::cout << "Planet Position in OS Object Space: " << glm::to_string(planetCenterOrigin) << std::endl;
|
||||
glm::vec4 planetCenterTmp = transform * planetCenterOrigin;
|
||||
glm::dvec4 dPlanetCenterTmp = glm::dmat4(transform) * dPlanetCenterOrigin;
|
||||
std::cout << "Planet Position in OS World Space After Transf: " << glm::to_string(dPlanetCenterTmp) << std::endl;
|
||||
glm::vec4 planetCenterTmpWorld = planetCenterTmp + glm::vec4(data.position.vec3(), 0.0);
|
||||
glm::dvec4 dPlanetCenterTmpWorld = dPlanetCenterTmp + glm::dvec4(data.position.dvec3(), 0.0);
|
||||
std::cout << "Planet Position in OS World Space After Transl: " << glm::to_string(dPlanetCenterTmpWorld) << std::endl;
|
||||
std::cout << "Object Translation Vector: " << glm::to_string(data.position.dvec3()) << std::endl;
|
||||
//std::cout << "Planet Position in OS World Space: " << glm::to_string(planetCenterTmpWorld) << std::endl;
|
||||
planetCenterTmp = planetCenterTmpWorld + glm::vec4(-data.camera.positionVec3(), 0.0);
|
||||
dPlanetCenterTmp = dPlanetCenterTmpWorld + glm::dvec4(-data.camera.positionVec3(), 0.0);
|
||||
glm::vec3 tt = glm::mat3(data.camera.viewRotationMatrix()) * glm::vec3(planetCenterTmp);
|
||||
glm::dvec3 dtt = glm::dmat3(data.camera.viewRotationMatrix()) * glm::dvec3(dPlanetCenterTmp);
|
||||
glm::vec4 planetCenterTmpOSEye = glm::vec4(0.0);
|
||||
glm::dvec4 dPlanetCenterTmpOSEye = glm::dvec4(0.0);
|
||||
planetCenterTmpOSEye.x = tt.x; planetCenterTmpOSEye.y = tt.y; planetCenterTmpOSEye.z = tt.z; planetCenterTmpOSEye.w = 1.0;
|
||||
dPlanetCenterTmpOSEye.x = dtt.x; dPlanetCenterTmpOSEye.y = dtt.y; dPlanetCenterTmpOSEye.z = dtt.z; dPlanetCenterTmpOSEye.w = 1.0;
|
||||
float scaleF = data.camera.scaling().x * powf(10.0, data.camera.scaling().y);
|
||||
double dScaleF = static_cast<double>(data.camera.scaling().x) * pow(10.0, static_cast<double>(data.camera.scaling().y));
|
||||
glm::mat4 scaleM = glm::scale(glm::vec3(scaleF));
|
||||
glm::dmat4 dScaleM = glm::scale(glm::dvec3(dScaleF));
|
||||
planetCenterTmpOSEye = scaleM * planetCenterTmpOSEye;
|
||||
dPlanetCenterTmpOSEye = dScaleM * dPlanetCenterTmpOSEye;
|
||||
//std::cout << "Planet Position in OS Eye Space: " << glm::to_string(planetCenterTmp) << std::endl;
|
||||
glm::vec4 planetCenterTmpSGCTEye = data.camera.viewMatrix() * planetCenterTmpOSEye;
|
||||
glm::dvec4 dPlanetCenterTmpSGCTEye = glm::dmat4(data.camera.viewMatrix()) * dPlanetCenterTmpOSEye;
|
||||
//std::cout << "Planet Position in SGCT Eye Space: " << glm::to_string(planetCenterTmpSGCTEye) << std::endl;
|
||||
glm::vec4 planetCenterTmpSGCTView = data.camera.projectionMatrix() * planetCenterTmpSGCTEye;
|
||||
glm::dvec4 dPlanetCenterTmpSGCTView = glm::dmat4(data.camera.projectionMatrix()) * dPlanetCenterTmpSGCTEye;
|
||||
//std::cout << "Planet Position in SGCT View Space: " << glm::to_string(planetCenterTmpSGCTView) << std::endl;
|
||||
|
||||
// Inverse Path:
|
||||
std::cout << "------ Inverse Path ------" << std::endl;
|
||||
//planetCenterTmpSGCTView /= planetCenterTmpSGCTView.w;
|
||||
glm::vec4 inversePlanetCenterTmpSGCTEye = inverseProjection * planetCenterTmpSGCTView;
|
||||
glm::dvec4 dInversePlanetCenterTmpSGCTEye = dInverseProjection * dPlanetCenterTmpSGCTView;
|
||||
//inversePlanetCenterTmpSGCTEye /= inversePlanetCenterTmpSGCTEye.w;
|
||||
std::cout << "Planet Position in SGCT Eye Space : " << glm::to_string(inversePlanetCenterTmpSGCTEye) << std::endl;
|
||||
std::cout << "Planet Position in SGCT Eye Space : " << glm::to_string(inversePlanetCenterTmpSGCTEye) << std::endl;
|
||||
std::cout << "Planet Position in SGCT Eye Space (Orig): " << glm::to_string(planetCenterTmpSGCTEye) << std::endl;
|
||||
glm::vec4 inversePlanetCenterTmpOSEye = glm::inverse(eye2View) * inversePlanetCenterTmpSGCTEye;
|
||||
std::cout << "Planet Position in SGCT Eye Space (doub): " << glm::to_string(dInversePlanetCenterTmpSGCTEye) << std::endl;
|
||||
std::cout << "Planet Position in SGCT Eye Space (D/W) : " << glm::to_string(dInversePlanetCenterTmpSGCTEye/dInversePlanetCenterTmpSGCTEye.w) << std::endl;
|
||||
std::cout << "Planet Position in SGCT Eye Space (OD) : " << glm::to_string(dPlanetCenterTmpSGCTEye) << std::endl;
|
||||
|
||||
glm::vec4 inversePlanetCenterTmpOSEye = sgctEye2OSEye * inversePlanetCenterTmpSGCTEye;
|
||||
glm::dvec4 dInversePlanetCenterTmpOSEye = dSgctEye2OSEye * dInversePlanetCenterTmpSGCTEye;
|
||||
//inversePlanetCenterTmpOSEye /= inversePlanetCenterTmpOSEye.aw;
|
||||
std::cout << "Planet Position in OS Eye Space : " << glm::to_string(inversePlanetCenterTmpOSEye) << std::endl;
|
||||
std::cout << "Planet Position in OS Eye Space (Orig) : " << glm::to_string(planetCenterTmpOSEye) << std::endl;
|
||||
std::cout << "Planet Position in OS Eye Space (doub) : " << glm::to_string(dInversePlanetCenterTmpOSEye) << std::endl;
|
||||
std::cout << "Planet Position in OS Eye Space (OD) : " << glm::to_string(dPlanetCenterTmpOSEye) << std::endl;
|
||||
|
||||
glm::vec4 inversePlanetCenterTmpOSWorld = eye2World * inversePlanetCenterTmpOSEye;
|
||||
glm::dvec4 dInversePlanetCenterTmpOSWorld = dEye2World * dInversePlanetCenterTmpOSEye;
|
||||
//inversePlanetCenterTmpOSWorld /= inversePlanetCenterTmpOSWorld.w;
|
||||
std::cout << "Planet Position in OS World Space : " << glm::to_string(inversePlanetCenterTmpOSWorld) << std::endl;
|
||||
std::cout << "Planet Position in OS World Space (div by w): " << glm::to_string(inversePlanetCenterTmpOSWorld/inversePlanetCenterTmpOSWorld.w) << std::endl;
|
||||
std::cout << "Planet Position in OS World Space (Orig) : " << glm::to_string(planetCenterTmpWorld) << std::endl;
|
||||
std::cout << "Planet Position in OS World Space (doub) : " << glm::to_string(dInversePlanetCenterTmpOSWorld) << std::endl;
|
||||
std::cout << "Planet Position in OS World Space (D/W) : " << glm::to_string(dInversePlanetCenterTmpOSWorld/dInversePlanetCenterTmpOSWorld.w) << std::endl;
|
||||
std::cout << "Planet Position in OS World Space (OD) : " << glm::to_string(dPlanetCenterTmpWorld) << std::endl;
|
||||
|
||||
glm::vec4 ttmp = glm::inverse(scaleM) * inversePlanetCenterTmpOSEye;
|
||||
glm::vec3 ttmp2 = glm::inverse(glm::mat3(data.camera.viewRotationMatrix())) * glm::vec3(ttmp);
|
||||
//glm::vec4 ttmp3 = glm::inverse(glm::translate(glm::mat4(1.0), -data.camera.position().vec3())) * glm::vec4(ttmp2, 1.0);
|
||||
//glm::vec4 ttmp2 = glm::inverse(data.camera.viewRotationMatrix()) * ttmp;
|
||||
//glm::vec4 ttmp3 = glm::inverse(glm::translate(glm::mat4(1.0), -data.camera.position().vec3())) * ttmp2;
|
||||
glm::vec4 ttmp3 = glm::vec4(data.camera.position().vec3() + ttmp2, 1.0);
|
||||
glm::dvec4 dttmp = glm::inverse(dScaleM) * dInversePlanetCenterTmpOSEye;
|
||||
glm::dvec3 dttmp2 = glm::inverse(glm::dmat3(data.camera.viewRotationMatrix())) * glm::dvec3(dttmp);
|
||||
glm::dvec4 dttmp3 = glm::dvec4(data.camera.position().dvec3() + dttmp2, 1.0);
|
||||
std::cout << "Planet Position in OS World Space (hand) : " << glm::to_string(ttmp3) << std::endl;
|
||||
std::cout << "Planet Position in OS World Space (Orig) : " << glm::to_string(planetCenterTmpWorld) << std::endl;
|
||||
std::cout << "Planet Position in OS World Space (hand D) : " << glm::to_string(dttmp3) << std::endl;
|
||||
std::cout << "Planet Position in OS World Space (OD) : " << glm::to_string(dPlanetCenterTmpWorld) << std::endl;
|
||||
|
||||
glm::vec4 inversePlanetCenterTmpOrigin = world2Obj * inversePlanetCenterTmpOSWorld;
|
||||
//inversePlanetCenterTmpOrigin /= inversePlanetCenterTmpOrigin.w;
|
||||
glm::dvec4 dInversePlanetCenterTmpOrigin = dWorld2Obj * dInversePlanetCenterTmpOSWorld;
|
||||
std::cout << "Planet Position in OS Object Space : " << glm::to_string(inversePlanetCenterTmpOrigin) << std::endl;
|
||||
std::cout << "Planet Position in OS Object Space (Orig): " << glm::to_string(planetCenterOrigin) << std::endl;
|
||||
std::cout << "Planet Position in OS Object Space (doub): " << glm::to_string(dInversePlanetCenterTmpOrigin) << std::endl;
|
||||
std::cout << "Planet Position in OS Object Space (D/W): " << glm::to_string(dInversePlanetCenterTmpOrigin/dInversePlanetCenterTmpOrigin.w) << std::endl;
|
||||
std::cout << "Planet Position in OS Object Space (OD) : " << glm::to_string(dPlanetCenterOrigin) << std::endl;
|
||||
|
||||
//glm::vec4 ttmp4 = glm::inverse(transform) *
|
||||
// glm::inverse(glm::translate(glm::mat4(1.0), data.position.vec3())) * ttmp3;
|
||||
glm::vec4 ttmp4 = glm::inverse(transform) * glm::vec4(glm::vec3(ttmp3) - data.position.vec3(), 1.0);
|
||||
glm::dvec4 dttmp4 = glm::inverse(glm::dmat4(transform)) * glm::dvec4(glm::dvec3(dttmp3) - data.position.dvec3(), 1.0);
|
||||
glm::dvec4 dttmp5 = glm::transpose(glm::dmat4(transform)) * glm::dvec4(glm::dvec3(dttmp3) - data.position.dvec3(), 1.0);
|
||||
std::cout << "Planet Position in OS Object Space (hand): " << glm::to_string(ttmp4) << std::endl;
|
||||
std::cout << "Planet Position in OS Object Space (Orig): " << glm::to_string(planetCenterOrigin) << std::endl;
|
||||
std::cout << "Planet Position in OS Object Space (HD) : " << glm::to_string(dttmp4) << std::endl;
|
||||
std::cout << "Planet Position in OS Object Space (HDT) : " << glm::to_string(dttmp5) << std::endl;
|
||||
std::cout << "Planet Position in OS Object Space (OD) : " << glm::to_string(dPlanetCenterOrigin) << std::endl;
|
||||
|
||||
std::cout << "Planet Position in OS Object Space (comp): " << glm::to_string(inverseCompleteVertexTransformations * planetCenterTmpSGCTView) << std::endl;
|
||||
std::cout << "Planet Position in OS Object Space (Orig): " << glm::to_string(planetCenterOrigin) << std::endl;
|
||||
std::cout << "Planet Position in OS Object Space (comp) : " << glm::to_string(inverseCompleteVertexTransformations * planetCenterTmpSGCTView) << std::endl;
|
||||
std::cout << "Planet Position in OS Object Space (dcomp): " << glm::to_string(dCompleteVertexTransformationsInverse * glm::dvec4(planetCenterTmpSGCTView)) << std::endl;
|
||||
std::cout << "Planet Position in OS Object Space (Orig) : " << glm::to_string(planetCenterOrigin) << std::endl;
|
||||
|
||||
std::cout << "Planet Position in OS Object Space (No Transf): " << glm::to_string(glm::dvec4(glm::dvec3(dttmp3) - data.position.dvec3(), 1.0)) << std::endl;
|
||||
std::cout << "Planet Position in OS Object Space (no glm): " << dttmp3.x - data.position.dvec3().x << ", " << dttmp3.y - data.position.dvec3().y << ", " << dttmp3.z - data.position.dvec3().z << std::endl;
|
||||
std::cout << "Object Translation Vector: " << glm::to_string(data.position.dvec3()) << std::endl;
|
||||
|
||||
|
||||
psc pscPlanetPosObjCoords = PowerScaledCoordinate::CreatePowerScaledCoordinate(ttmp3.x, ttmp3.y, ttmp3.z);
|
||||
|
||||
@@ -26,7 +26,8 @@
|
||||
#define __RENDERABLEPLANETATMOSPHERE_H__
|
||||
|
||||
// open space includes
|
||||
#include <modules/atmosphere/atmosphere.h>
|
||||
//#include <modules/atmosphere/atmosphere.h>
|
||||
|
||||
#include <openspace/rendering/renderable.h>
|
||||
|
||||
#include <openspace/properties/scalar/boolproperty.h>
|
||||
@@ -53,7 +54,8 @@ namespace openspace {
|
||||
class PlanetGeometry;
|
||||
}
|
||||
|
||||
class RenderablePlanetAtmosphere : public Atmosphere, public Renderable {
|
||||
//class RenderablePlanetAtmosphere : public Atmosphere, public Renderable {
|
||||
class RenderablePlanetAtmosphere : public Renderable {
|
||||
public:
|
||||
// Shadow structure
|
||||
typedef struct {
|
||||
|
||||
@@ -35,9 +35,11 @@ uniform mat4 scaleTransformMatrix;
|
||||
uniform mat4 objToWorldTransform;
|
||||
uniform mat4 worldToObjectTransform;
|
||||
uniform mat4 worldToEyeTransform;
|
||||
uniform mat4 eyeToWorldTransform;
|
||||
uniform mat4 eyeToViewTranform;
|
||||
uniform mat4 viewToEyeTranform;
|
||||
uniform mat4 eyeToWorldTransform; // OS Eye to World
|
||||
uniform mat4 osEye2SGCTEyeTranform; // OS Eye to SGCT Eye
|
||||
uniform mat4 sgctEye2OSEyeTranform; // SGCT Eye to OS Eye
|
||||
uniform mat4 eyeToViewTranform; // SGCT Eye to SGCT Project Clip
|
||||
uniform mat4 viewToEyeTranform; // SGCT Project Clip to SGCT Eye
|
||||
uniform mat4 inverseSgctProjectionMatrix;
|
||||
|
||||
uniform mat4 completeVertexTransform;
|
||||
@@ -738,10 +740,11 @@ void calculateRay2(out Ray ray, out vec4 planetPositionObjectCoords) {
|
||||
|
||||
// Clip to SGCT Eye
|
||||
vec4 sgctEyeCoords = inverseSgctProjectionMatrix * clipCoords;
|
||||
//sgctEyeCoords /= sgctEyeCoords.w;
|
||||
sgctEyeCoords.w = 1.0;
|
||||
|
||||
// SGCT Eye to OS Eye (This is SGCT eye to OS eye)
|
||||
vec4 osEyeCoords = viewToEyeTranform * sgctEyeCoords;
|
||||
vec4 osEyeCoords = sgctEye2OSEyeTranform * sgctEyeCoords;
|
||||
|
||||
// OS Eye to World coords
|
||||
// Now we execute the transformations with no matrices:
|
||||
@@ -766,7 +769,7 @@ void calculateRay2(out Ray ray, out vec4 planetPositionObjectCoords) {
|
||||
ray.origin = cameraPositionInObject;
|
||||
ray.direction = vec4(normalize(objectCoords.xyz - cameraPositionInObject.xyz), 0.0);
|
||||
|
||||
renderTarget = vec4(0.5 * interpolatedNDCPos.xyz + vec3(0.5), 1.0);
|
||||
//renderTarget = vec4(0.5 * interpolatedNDCPos.xyz + vec3(0.5), 1.0);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -884,9 +887,9 @@ void main() {
|
||||
bool insideATM = false;
|
||||
float offset = 0.0f;
|
||||
float maxLength = 0.0f;
|
||||
bool intersectATM = atmosphereIntersection(planetPositionObjectCoords.xyz, ray, Rt*1000.0,
|
||||
insideATM, offset, maxLength );
|
||||
//bool intersectATM = algebraicIntersecSphere(ray, Rt*1000.0, planetPositionObjectCoords, offset, maxLength);
|
||||
//bool intersectATM = atmosphereIntersection(planetPositionObjectCoords.xyz, ray, Rt*1000.0,
|
||||
// insideATM, offset, maxLength );
|
||||
bool intersectATM = algebraicIntersecSphere(ray, Rt*1000.0, planetPositionObjectCoords, offset, maxLength);
|
||||
|
||||
// if ( intersectATM ) {
|
||||
// renderTarget = vec4(1.0, 0.0, 0.0, 1.0);
|
||||
|
||||
Reference in New Issue
Block a user