Tôi đã thử mọi thứ từ SDL đến DevIL và tất cả đều không thành công vì nhiều lý do khác nhau.
SDL segfaults vì nhiều lý do khác nhau, và DevIL có một số vấn đề lạ ngay cả sau khi tôi bao gồm IL/ilut.h và liên kết mọi thứ, và bao gồm các tiêu đề khác, nó không xác định các chức năng tôi cần tải hình ảnh kết cấu opengl (một cái gì đó về USE_OPEN_GL không được xác định). Tôi yêu cầu cho bất kỳ lib khác ra có cho tải bitmap hoặc png vào một định dạng tôi có thể dễ dàng chuyển đổi sang opengl, hoặc một giải pháp cho vấn đề ma quỷ.
cảm ơnC++ Trình tải ảnh nền tảng chéo cho OpenGL
Trả lời
bạn không cần ILUT làm những gì bạn muốn. bạn chỉ có thể sử dụng ilGetData() và glTexImage2d()
Tải ảnh bitmap (.bmp) và hình ảnh netpbm (.pbm, pgm, .pnm) là khá tầm thường, vì chúng lưu trữ hình ảnh không nén. Để tải PNG, hãy sử dụng libpng. Để tải ảnh JPEG, hãy sử dụng libjpeg. Đối với các loại hình ảnh khác, hãy sử dụng thư viện thích hợp. Có một thay đổi tốt khi tát vào 'lib' vào đầu tên hình ảnh sẽ cung cấp cho bạn một thư viện như vậy, ví dụ: libtiff, libtga, vv
Khi bạn đã tải và giải nén dữ liệu hình ảnh thô, tải nó vào một kết cấu OpenGL chỉ là vấn đề gọi glTexImage2D()
với thông số phù hợp và một vài thay đổi trạng thái GL khác (ví dụ làm thế nào để làm mipmapping).
Hình ảnh Magick có liên kết C hoặc C++?
LodePNG là một PNG Loader cao nhỏ gọn với không phụ thuộc.
Nhận xét về trải nghiệm của bạn với DevIL - nó hoạt động hoàn hảo cho tôi và nhiều người khác. Tại sao không thử lại để giải quyết vấn đề xây dựng của bạn? - không nên quá khó)
SOIL là loại nhẹ mà tôi đã sử dụng trước đây. Nó thực sự là chuyên ngành để tải kết cấu OpenGL.
Bạn cũng có thể thử FreeImage library. Nó hỗ trợ tải các loại hình ảnh khác nhau và có chức năng tương tự như DevIL, có thể làm việc ra khỏi hộp cho bạn.
Và về vấn đề của bạn với DevIL, bạn không phải xây dựng thư viện ilu hoặc ilut để làm cho DevIL hoạt động. Tôi khuyên bạn nên tự quản lý các đối tượng kết cấu OpenGL, bao gồm cả việc tải dữ liệu hình ảnh lên phía OpenGL.
Cả hai libpng và libjpeg có thể khá khó khăn để xây dựng việc sử dụng & - không có thắc mắc có tất cả các loại thư viện trình bao bọc cho cả hai.
Trình nạp vô nghĩa rất đơn giản và tối thiểu cho jpg/png (và một số công cụ khác) mà không phụ thuộc vào một tệp C là Sean Barrett's stb_image.c, nếu bạn chỉ muốn tải một số tập tin hình ảnh nó thêm overhead hoàn toàn tối thiểu để chương trình của bạn và là đơn giản để sử dụng:
trẻ nhưng chưa lớn đủ SFML có thể là một trong những bạn đang tìm kiếm. Tôi đã sử dụng nó cho nhiều dự án và tất cả các 'em làm việc tốt trên tất cả các nền tảng của tôi (Win7 và Ubuntu).
- 1. Tạo bối cảnh tắt OpenGL nền tảng chéo
- 2. Chụp ảnh màn hình bằng Python - Nền tảng chéo
- 3. Tạo ứng dụng nền tảng chéo
- 4. Biên dịch nền tảng chéo Asterisk
- 5. Ứng dụng nền tảng chéo với WPF
- 6. Mã hóa chuỗi nền tảng chéo
- 7. Thư viện MIDI đơn giản, nền tảng chéo cho Python
- 8. Tự động cập nhật nền tảng chéo
- 9. Môi trường xây dựng nền tảng chéo
- 10. Mật mã nào để sử dụng cho nền tảng chéo
- 11. Khả năng tương thích nền tảng chéo trong C/C++ (chuyển một dự án từ Java)?
- 12. Vala là một ngôn ngữ nền tảng chéo?
- 13. Nền tảng chéo, cách trình duyệt chéo để phát âm thanh từ Javascript?
- 14. C++ custom UI ToolKit - Tùy chọn cho lớp trừu tượng nền tảng chéo
- 15. Thư viện ứng dụng khách VNC trên nền tảng chéo?
- 16. Định nghĩa nền tảng chéo của số nguyên 64 bit trong C++ cho Windows và Linux
- 17. Tải hình ảnh OpenCV cho OpenGL Texture
- 18. GUI nền tảng chéo có kiểu dáng nặng
- 19. C++ nền tảng chéo cho các quy trình: POCO có tốt không? lựa chọn thay thế khác?
- 20. Tài nguyên cho phát triển C/C++ đa nền tảng
- 21. API TCP/IP đơn giản trên nền tảng chéo?
- 22. Máy khách MongoDB GUI (nền tảng chéo hoặc Linux)
- 23. Tiện ích đồ thị C/C++ cho nền tảng Windows
- 24. Ruby có phải là nền tảng chéo như Java không?
- 25. (Đa nền tảng) Lập trình 3D với C# (mono)
- 26. Các thư mục và không gian tên có ảnh hưởng đến hiệu năng trong C++ và nền tảng chéo không?
- 27. Native C/C++ trên nền tảng Android
- 28. Có một công cụ để tích hợp liên tục nền tảng chéo (C++ Win32 và linux)
- 29. Thuật toán nền tảng chéo nhanh để đọc/ghi tệp trong C++
- 30. C# Tiến trình báo cáo nền tảng cho 2 thanh tiến trình?
Tôi nghĩ đây là câu trả lời đúng. Đó là một thư viện gọn nhẹ với API C cực kỳ đơn giản và nó chủ yếu dựa trên stb_image.c (đây là mã tải hình ảnh trọng lượng nhẹ tuyệt đối của Spartan) nhưng nó sạch hơn. – bigD