Tôi có dữ liệu hình ảnh và tôi muốn có một hình ảnh phụ để sử dụng như một kết cấu mờ.openGL SubTexturing
glGenTextures(1, &m_name);
glGetIntegerv(GL_TEXTURE_BINDING_2D, &oldName);
glBindTexture(GL_TEXTURE_2D, m_name);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, m_width, m_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, m_data);
Tôi làm cách nào để có được hình ảnh phụ của hình ảnh đó được tải dưới dạng kết cấu. Tôi nghĩ rằng nó có một cái gì đó để làm với việc sử dụng glTexSubImage2D, nhưng tôi không có đầu mối làm thế nào để sử dụng nó để tạo ra một kết cấu mới mà tôi có thể tải. Gọi điện:
glTexSubImage2D(GL_TEXTURE_2D, 0, xOffset, yOffset, xWidth, yHeight, GL_RGBA, GL_UNSIGNED_BYTE, m_data);
không có gì mà tôi có thể xem và gọi glCopyTexSubImage2D chỉ là một phần của bộ đệm khung của tôi. Cảm ơn
Về cơ bản tôi có hình ảnh (dưới dạng dữ liệu thô) và tôi muốn sử dụng một phần của hình ảnh đó làm kết cấu. Tôi biết làm thế nào để tải toàn bộ hình ảnh như là một kết cấu, nhưng không biết làm thế nào để sử dụng chỉ là một chút của nó. – DavidG
Đã trả lời câu trả lời này. Nếu bạn có một hình ảnh trong bộ nhớ, nó được lưu trữ bằng cách nào đó. Nếu bạn sử dụng glTexImage2D (... GL_RGBA, GL_UNSIGNED_BYTE) để tải, thì có một byte cho R, G, B và giá trị alpha. Các hình ảnh được lưu trữ với pixel (0, 0) bắt đầu ở vị trí 0. Pixel x ở hàng y bắt đầu ở hình ảnh [width * y + x] [0] – mstrobl
vì tôi đang sử dụng OpenGL ES, tôi đã kết thúc tùy chọn u đã cho, đó là giải nén subimage vào một bộ đệm mới. Thật đáng buồn trên thiết bị nó không còn hoạt động, vì vậy tôi sẽ làm lại kết cấu để tôi không cần phải giải quyết vấn đề. – DavidG