Kết xuất phần mềm OpenGL thuần túy


8

Để đào tạo thuật toán học máy, chúng ta cần kết xuất một số hình học trong OpenGL mà không cần bất kỳ hỗ trợ kết xuất phần cứng nào (không có card đồ họa). Vì vậy, chúng tôi đã nghĩ đến việc kết xuất trong phần mềm thuần túy và chúng tôi đã xem xét Mesa. Có vẻ như nó có khả năng hiển thị trong phần mềm thuần túy, nhưng cho đến nay, chúng tôi chỉ nhận được OpenGL 2.x, trong khi chúng tôi cần OpenGL 3.3.

Có ai biết nếu điều đó là có thể? và nếu vậy thì thế nào? Chúng tôi dường như chạy vào những vấp ngã mọi lúc.

(Bối cảnh, tại sao chúng tôi muốn làm điều đó: để đào tạo thuật toán học tập, chúng tôi cần thực hiện rất nhiều phần mềm chạy trên cụm PC, không cho phép kết xuất trong phần cứng.)

Bất kỳ gợi ý, ý tưởng và con trỏ sẽ được đánh giá cao.


Mesa thậm chí không hỗ trợ OpenGL 3.3 được tăng tốc phần cứng trên một số hệ thống (như máy tính xách tay của tôi).
Đại tá Ba mươi Hai

Câu trả lời:


6

Tôi bối rối theo yêu cầu của bạn. Bạn đang chạy mã trên PC hoặc hệ thống nhúng? Nếu bạn đang chạy trên bất cứ thứ gì trông giống PC, thì "mọi hỗ trợ kết xuất phần cứng" về cơ bản là không đúng. Ở mức tối thiểu bạn có một số công cụ tích hợp Intel. Tôi vẫn chưa thấy một hệ thống không đầu mà vật lý không có chip video.

Trên hệ thống không đầu bạn có thể kết xuất mà không cần cửa sổ, làm thế nào để thực hiện điều này với GLX, bạn có thể xem chi tiết trong Windowless OpenGL . Trong mọi trường hợp, ngay cả phần cứng xảo quyệt nhất cũng sẽ hiệu quả hơn trình kết xuất phần mềm.

Nếu bạn thực sự đang ở trong tình trạng khó khăn và hoàn toàn không có phần cứng đồ họa, bạn có thể sử dụng một cái gì đó như VirtualGL .

Nhưng nếu bạn đang tổng hợp hình ảnh trong phần mềm bằng OpenGL thì ngược lại. OpenGL được thiết kế xung quanh các hạn chế nghiêm trọng của phần cứng đồ họa. Kết quả là có những hạn chế đáng kể trong các hạn chế có thể bị bỏ qua khi kết xuất trong phần mềm. Ngoài ra, thuật toán raster không hiệu quả lắm khi sử dụng phần cứng hiện tại. Một lần dò tia thứ tự đầu tiên có thể hiệu quả hơn và dễ dàng bị tê liệt trên nhiều lõi. Có lẽ bạn có thể nhìn vào một cái gì đó như PovRay .


1
Có một số chip video intel xảo quyệt được sản xuất ngay cả ngày nay, chỉ hỗ trợ lắp ráp phân đoạn OpenGL 1.4 + ARB + ​​lắp ráp đỉnh được triển khai bằng phần mềm ARB. Chúng sẽ không hiệu quả hơn trình kết xuất phần mềm cho bất kỳ ứng dụng nào yêu cầu OpenGL 3.
Ruslan

Cảm ơn rất nhiều. Vâng, nó giống như một PC. Đầu tiên, một PC đơn giản trong cụm PC, chúng tôi đăng nhập thông qua ssh. Sau đó, nó sẽ là các nút PC trong hệ thống HPC. Vấn đề là: bất kể chúng ta làm gì, chúng ta luôn chỉ nhận được OpenGL 2.1. Ứng dụng của chúng tôi dựa trên Qt, nhưng trong phiên bản không có cửa sổ, tất cả mã Qt đều không hoạt động, ngoại trừ mã tạo bối cảnh OpenGL. Và, vâng, chúng tôi đã đặt HIỂN THỊ thành: 0,0 trên máy từ xa.
Gabriel

Nhưng một lần nữa, OpenGL 2.1 không quá tệ. Tôi đã sử dụng rộng rãi với kết quả khá tốt.
rioki

3

Dường như chỉ có OpenGL 2.x được hỗ trợ hoàn toàn bởi trình kết xuất phần mềm trong Mesa.

Tuy nhiên, câu trả lời này cho thấy, hầu hết các chức năng của OpenGL 3.x đều được hỗ trợ thông qua các tiện ích mở rộng. Vì vậy, bạn có thể muốn thử.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.