Я хотел бы преобразовать свой код, чтобы выполнить Вместо этого наложение текстур осуществляется через вершинный шейдер, чтобы я мог передавать значения во фрагментный шейдер для дальнейших расчетов освещения.
Это раздел моего кода, который в настоящее время генерирует сферы и применяет свои текстуры:
Код: Выделить всё
#include
#ifdef __APPLE_CC__
#include
#else
#include
#endif
#include
#include
#include
#include
#include
#define STB_IMAGE_IMPLEMENTATION
#include "stb_image.h"
using namespace std;
GLuint loadTexture(const char* path)
{
GLuint texture;
int width, height, nrChannels;
stbi_set_flip_vertically_on_load(true);
glGenTextures(1, &texture);
glBindTexture(GL_TEXTURE_2D, texture);
glActiveTexture(GL_TEXTURE_2D);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
unsigned char *data = stbi_load(path, &width, &height, &nrChannels, 0);
if (data)
{
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, data);
glGenerateMipmap(GL_TEXTURE_2D);
}
else
{
cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79190824/opengl-texture-mapping-with-a-vertex-shader[/url]