Typo in scene.h and some cleanup

This commit is contained in:
Jack Christensen 2024-08-15 01:09:37 -04:00
parent cba45bdecf
commit bc8d855098
3 changed files with 5 additions and 28 deletions

1
.gitignore vendored
View File

@ -55,3 +55,4 @@ Thumbs.db
# Libraries and dependencies
/lib/
/hgt/

View File

@ -45,8 +45,7 @@ class Scene {
glm::mat4 projection_matrix_;
void UpdateCamera();
int16_t Scene::SwapEndian(int16_t val);
float NormalizeHeight(int16_t value, int16_t minVal, int16_t maxVal);
int16_t SwapEndian(int16_t val);
GLuint CreateHeightmapTexture(std::vector<int16_t> data, int width, int height);
};

View File

@ -35,7 +35,7 @@ const std::string kFragmentShaderPath = "shaders/fragment.glsl";
const std::string kQuadVertexPath = "shaders/quad_vertex.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;
@ -317,41 +317,18 @@ void Scene::UpdateCamera() {
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) {
int16_t minVal = *std::min_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;
for (int16_t &d : data) {
// Normalize the value between 0 and 1 based on the min/max range
d = static_cast<int16_t>(
255 * (d - minVal) / (maxVal - minVal)
);
d = static_cast<int16_t>(255 * (d - minVal) / (maxVal - minVal));
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;
glGenTextures(1, &textureID);
glBindTexture(GL_TEXTURE_2D, textureID);