Typo in scene.h and some cleanup
This commit is contained in:
parent
cba45bdecf
commit
bc8d855098
|
@ -55,3 +55,4 @@ Thumbs.db
|
||||||
|
|
||||||
# Libraries and dependencies
|
# Libraries and dependencies
|
||||||
/lib/
|
/lib/
|
||||||
|
/hgt/
|
|
@ -45,8 +45,7 @@ class Scene {
|
||||||
glm::mat4 projection_matrix_;
|
glm::mat4 projection_matrix_;
|
||||||
|
|
||||||
void UpdateCamera();
|
void UpdateCamera();
|
||||||
int16_t Scene::SwapEndian(int16_t val);
|
int16_t SwapEndian(int16_t val);
|
||||||
float NormalizeHeight(int16_t value, int16_t minVal, int16_t maxVal);
|
|
||||||
GLuint CreateHeightmapTexture(std::vector<int16_t> data, int width, int height);
|
GLuint CreateHeightmapTexture(std::vector<int16_t> data, int width, int height);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@ const std::string kFragmentShaderPath = "shaders/fragment.glsl";
|
||||||
const std::string kQuadVertexPath = "shaders/quad_vertex.glsl";
|
const std::string kQuadVertexPath = "shaders/quad_vertex.glsl";
|
||||||
const std::string kQuadFragmentPath = "shaders/quad_fragment.glsl";
|
const std::string kQuadFragmentPath = "shaders/quad_fragment.glsl";
|
||||||
|
|
||||||
const std::string kHGTPath = "C:/Users/jmchr/Downloads/N02E016.SRTMGL1.hgt/N02E016.hgt";
|
const std::string kHGTPath = "hgt/N02E016.hgt";
|
||||||
|
|
||||||
GLuint tex_id = -1;
|
GLuint tex_id = -1;
|
||||||
|
|
||||||
|
@ -317,41 +317,18 @@ void Scene::UpdateCamera() {
|
||||||
projection_matrix_ = glm::perspective(fov_, aspect_, near_z_, far_z_);
|
projection_matrix_ = glm::perspective(fov_, aspect_, near_z_, far_z_);
|
||||||
}
|
}
|
||||||
|
|
||||||
// HGT files are 16bit integers whereas OpenGL prefers floating point values for color data
|
|
||||||
float Scene::NormalizeHeight(int16_t value, int16_t minVal, int16_t maxVal) {
|
|
||||||
return static_cast<float>(value - minVal) / (maxVal - minVal);
|
|
||||||
}
|
|
||||||
|
|
||||||
GLuint Scene::CreateHeightmapTexture(std::vector<int16_t> data, int width, int height) {
|
GLuint Scene::CreateHeightmapTexture(std::vector<int16_t> data, int width, int height) {
|
||||||
int16_t minVal = *std::min_element(data.begin(), data.end());
|
int16_t minVal = *std::min_element(data.begin(), data.end());
|
||||||
int16_t maxVal = *std::max_element(data.begin(), data.end());
|
int16_t maxVal = *std::max_element(data.begin(), data.end());
|
||||||
|
|
||||||
std::cout << "Min Val: " << minVal << "\n";
|
|
||||||
std::cout << "Max Val: " << maxVal << std::endl;
|
|
||||||
|
|
||||||
std::vector<float> floatData;
|
std::vector<float> floatData;
|
||||||
for (int16_t &d : data) {
|
for (int16_t &d : data) {
|
||||||
// Normalize the value between 0 and 1 based on the min/max range
|
// Normalize the value between 0 and 1 based on the min/max range
|
||||||
d = static_cast<int16_t>(
|
d = static_cast<int16_t>(255 * (d - minVal) / (maxVal - minVal));
|
||||||
255 * (d - minVal) / (maxVal - minVal)
|
|
||||||
);
|
|
||||||
|
|
||||||
floatData.push_back(static_cast<float>(d / 255.0f));
|
floatData.push_back(static_cast<float>(d / 255.0f));
|
||||||
//floatData.push_back((static_cast<float>(d) / 32767.0f + 1.0f) / 2.0f);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
minVal = *std::min_element(data.begin(), data.end());
|
|
||||||
maxVal = *std::max_element(data.begin(), data.end());
|
|
||||||
|
|
||||||
std::cout << "Min Val: " << minVal << "\n";
|
|
||||||
std::cout << "Max Val: " << maxVal << std::endl;
|
|
||||||
|
|
||||||
float minFloatVal = *std::min_element(floatData.begin(), floatData.end());
|
|
||||||
float maxFloatVal = *std::max_element(floatData.begin(), floatData.end());
|
|
||||||
|
|
||||||
std::cout << "Min Float Val: " << minFloatVal << "\n";
|
|
||||||
std::cout << "Max Float Val: " << maxFloatVal << std::endl;
|
|
||||||
|
|
||||||
GLuint textureID;
|
GLuint textureID;
|
||||||
glGenTextures(1, &textureID);
|
glGenTextures(1, &textureID);
|
||||||
glBindTexture(GL_TEXTURE_2D, textureID);
|
glBindTexture(GL_TEXTURE_2D, textureID);
|
||||||
|
|
Loading…
Reference in New Issue