Khi chạy MATLAB ở chế độ hàng loạt không có hiển thị (ví dụ: $DISPLAY
Biến môi trường UNIX chưa được đặt hoặc cờ matlab -nodisplay
khi khởi động), thông thường bạn không thể sử dụng trình kết xuất opengl
. Thay vào đó, bạn phải giải quyết cho trình kết xuất đồ họa painters
. Ví dụ:Tất cả văn bản bị mất khi sử dụng trình kết xuất đồ họa OpenGL ở chế độ hàng loạt
>> print -dpng -opengl fig.png
Warning: OpenGL mode can not be used in terminal emulation mode; ignoring option.
Thật không may, painters
thường cho kết quả kém khi làm việc với cảnh 3D với các bản vá lỗi, ánh sáng, minh bạch, vv .. Dưới đây là một ví dụ đơn giản (sử dụng một màn hình cho bây giờ), nơi alpha bị mất:
peaks
alpha(0.5)
print -dpng -opengl peaks_opengl.png
print -dpng -painters peaks_painters.png
Do những hạn chế, tôi đã rất vui mừng để tìm ra chủ yếu là không có giấy tờ-01.230.chức năng MATLAB tích hợp, trong đó hiện bằng cách nào đó cho phép bạn sử dụng trình kết xuất opengl
mà không hiển thị. Hàm này dựa trên hàm export_fig()
tuyệt vời. Bây giờ tôi có thể tiết kiệm rất nhanh số liệu 3D chất lượng cao ở chế độ hàng loạt.
Tuy nhiên, có một lần bắt: Tất cả văn bản bị mất khi hình được truyền qua hàm hardcopy()
. Ví dụ:
plot(1,1)
title('TEST')
>> A = hardcopy(gcf, '-Dopengl', '-r300');
Warning: Failed to draw text string
> In /Applications/MATLAB_R2010b.app/toolbox/matlab/graphics/hardcopy.p>hardcopy at 21
Con số đầu ra là hoàn toàn thiếu bất kỳ văn bản (không trục ve nhãn và không có tiêu đề):
export_fig axis.png -opengl
Vì vậy, những gì tôi đang tự hỏi là: Tôi làm cách nào để có được trình kết xuất đồ họa opengl
hoạt động với văn bản ở chế độ hàng loạt? Có cách nào tôi có thể nhận văn bản để hoạt động với chức năng hardcopy()
không? Có lẽ một cách để rasterize văn bản trước? Hoặc một cách để kết hợp một văn bản painters
của văn bản và opengl
bản cứng của cốt truyện? Ngoài ra, có một tuyến đường hoàn toàn khác để thực hiện công việc này hơn chức năng hardcopy()
không? Cũng lưu ý rằng vấn đề là không thể được với thiết lập hệ thống của tôi, vì nó có thể tái sản xuất dưới cả Mac OS và Ubuntu.
Bạn đã đọc [Mathworks post] này (http://www.mathworks.com/matlabcentral/newsreader/view_thread/300393) về phông chữ bị thiếu? –
@JuanMellado Cảm ơn bạn đã tìm kiếm. Tôi đã đi qua thread đó trước, nhưng tôi không tin rằng phông chữ là một vấn đề ở đây. Tôi có thể sử dụng bất kỳ phông chữ nào của tôi trong 'listfonts' và chúng xuất tốt với họa sĩ ở cả chế độ tương tác và hàng loạt, và với opengl ở chế độ tương tác. Tôi không thể chắc chắn, nhưng chủ đề khác có thể đã gây nhầm lẫn 2 vấn đề riêng biệt. –