Skip to content
Snippets Groups Projects
Commit fd1f745f authored by Vanessa Karolek's avatar Vanessa Karolek
Browse files

[#94] replace vkcv::sfrScene::TextureData by vkcv::asset::Texture

parent 8bf8f8e0
No related branches found
No related tags found
1 merge request!77Resolve "SAF-R Module"
Pipeline #26984 passed
......@@ -101,7 +101,7 @@ int main(int argc, const char** argv) {
lights.push_back(safrScene::Light(glm::vec3(30, 20, 30), 1.7));
//create the raytracer image for rendering
safrScene scene;
safrScene::TextureData texData = scene.render(spheres, lights);
vkcv::asset::Texture texData = scene.render(spheres, lights);
vkcv::Image texture = core.createImage(vk::Format::eR8G8B8A8Unorm, texData.width, texData.height);
texture.fill(texData.data.data());
......
......@@ -56,7 +56,7 @@ glm::vec3 safrScene::castRay(const glm::vec3& orig, const glm::vec3& dir, const
glm::vec3(1., 1., 1.) * specular_light_intensity * material.albedo[1] + reflect_color * material.albedo[2];
}
safrScene::TextureData safrScene::render(const std::vector<safrScene::Sphere>& spheres, const std::vector<safrScene::Light>& lights) {
vkcv::asset::Texture safrScene::render(const std::vector<safrScene::Sphere>& spheres, const std::vector<safrScene::Light>& lights) {
//constants for the image data
const int width = 800;
const int height = 600;
......@@ -86,12 +86,13 @@ safrScene::TextureData safrScene::render(const std::vector<safrScene::Sphere>& s
data.push_back(static_cast<uint8_t>(255.f));
}
safrScene::TextureData textureData;
vkcv::asset::Texture textureData;
textureData.width = width;
textureData.height = height;
textureData.componentCount = 4;
textureData.channels = 4;
textureData.data.resize(textureData.width * textureData.height * textureData.componentCount);
textureData.data.resize(textureData.width * textureData.height * textureData.channels);
memcpy(textureData.data.data(), data.data(), textureData.data.size());
return textureData;
}
\ No newline at end of file
......@@ -14,16 +14,6 @@ class safrScene {
public:
/**
* WORKAROUND
* moved the texture data struct from the old asset loader version, because it is necessary for our rendering for now
*/
struct TextureData {
int width;
int height;
int componentCount;
std::vector<char*> data;
};
/*
* Light struct with a position and intensity of the light source
*/
......@@ -79,7 +69,7 @@ public:
* @param vector: all light sources in the scene
* @return TextureData: texture data for the buffers
*/
TextureData render(const std::vector<Sphere>& spheres, const std::vector<Light>& lights);
vkcv::asset::Texture render(const std::vector<Sphere>& spheres, const std::vector<Light>& lights);
private:
/*
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment