2010-01-23 31 views
6

Trước hết, mục đích của mã này là gì?OpenGL: GL_LINE_SMOOTH không được hỗ trợ trên tất cả các thẻ; thậm chí không vẽ các dòng, trừ khi

glHint(GL_LINE_SMOOTH_HINT, GL_NICEST); 

tôi có thể đặt ở đó GL_DONT_CARE nhưng nó không làm cho dòng của tôi rút ra, trừ tôi sử dụng glDisable(GL_LINE_SMOOTH)

Vì vậy, im chào bán nếu theres một số được xây dựng trong cơ chế để làm cho nó vẽ các đường ngay cả khi đường trơn arent được hỗ trợ (Vì vậy, nó sẽ vẽ chúng mà không có antialising ...)

Hoặc tôi có phải thực hiện các chức năng riêng cho nó và kiểm tra xem đường trơn có được hỗ trợ hay không ... và mỗi lần tôi muốn vẽ các đường trơn, i cần gọi hàm này để kiểm tra xem nó có được hỗ trợ? argh.

Chỉnh sửa: Các dòng trơn tru trên thẻ khác của tôi, trên thẻ khác của chúng, chúng thậm chí không hiển thị, trừ khi tôi tắt các đường trơn. Vì vậy, đó là vấn đề, không phải là glEnable (GL_BLEND)

+0

Âm thanh như một lỗi trong trình điều khiển đối với tôi. – ypnos

+0

@ypnos - nếu anh ấy không bật tính năng trộn, thì không bật tính năng hòa trộn –

+0

, hãy xem chỉnh sửa của tôi ngay bây giờ –

Trả lời

5

glHint như tên ngụ ý là một gợi ý gợi ý cho người lái xe. Nó không cần thiết đạt được bất cứ điều gì. Chức năng thực tế của glHint phụ thuộc vào trình điều khiển đồ họa.

Ngoài ra, để bật LINE_SMOOTH, bạn cần bật tính năng trộn. Bạn đã bật GL_BLEND chưa? Và trong khi bạn đang ở đó, chọn glBlend func của bạn quá!

Ví dụ:

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 
glEnable(GL_BLEND); 
+0

Tôi đã chỉnh sửa bài đăng đầu tiên của mình ngay bây giờ, các dòng được hiển thị tốt trên thẻ khác, nhưng với thẻ không hỗ trợ đường trơn, nó sẽ không hiển thị chúng, trừ khi tôi vô hiệu hóa gl_line_smooth –

+0

@Newbie: Thẻ kia là gì? –

Các vấn đề liên quan