2013-08-12 40 views
8

Tôi đã tìm kiếm ở mọi nơi để biết các cạnh chống bí danh của các hình dạng được tô đầy với ShapeRenderer (ví dụ: ShapeType.Filled) nhưng không thể tìm thấy bất kỳ điều gì về điều này.Hình dạng chống răng cưa đầy đủ trong libgdx

Đường hoạt động tốt với Gdx.gl.glEnable(GL10.GL_LINE_SMOOTH) nhưng không có gì tôi đã thử làm việc với hình dạng đầy. Vì vậy, không ai có bất cứ đề nghị?

Trả lời

7

có thể liên kết này sẽ giúp: MULTI SAMPLING ANTI-ALASING IN LIBGDX ON ANDROID

nói chung bạn phải kích hoạt cách liền lạc để có cạnh của hình dạng điền trơn tru.

http://www.opengl.org/wiki/Multisampling

+3

Đây là mức thấp hơn mức bạn cần phải thực hiện nếu bạn đang sử dụng libGDX. Họ đã đi ra khỏi con đường của mình để trừu tượng đi tất cả những thứ này. Tại sao tái tạo lại bánh xe ở đây? –

3

tôi đã tìm thấy sự hỗ trợ chống răng cưa trong OpenGL được thiếu (như hỗ trợ thực tế phụ thuộc vào sự hỗ trợ phần cứng tùy chọn), đặc biệt đối với nguyên thủy đa giác cơ bản. Có hai giải pháp mà tôi đã tìm thấy để làm việc:

Trước tiên, bạn có thể lấy mẫu đa hợp lý khi sử dụng kết cấu. Vì vậy, có thể làm cho đa giác của bạn thành một đối tượng FrameBuffer, và sau đó sao chép nó vào màn hình. Vẫn còn một số cảnh báo, hãy xem http://www.saschahlusiak.de/2012/10/opengl-antialiasing-in-android-with-transparent-textures/ để biết thêm chi tiết.

Thứ hai, hiển thị hình dạng được lấp đầy của bạn bằng bóng đổ chống bí danh, như trong câu hỏi này: Drawing Antialiased circle using Shaders. Nếu hình dáng nguyên thủy đầy của bạn phức tạp, điều này có thể khá nhiều công việc. Xem https://code.google.com/p/libgdx/wiki/OpenGLShader để biết cách sử dụng trình đổ bóng với Libgdx. Tùy chọn này cũng chỉ hoạt động với OpenGL ES 2.0.

2

Bạn đã thử các gợi ý sau chưa?

Gdx.gl.glEnable(GL10.GL_LINE_SMOOTH); 
Gdx.gl.glEnable(GL10.GL_POINT_SMOOTH); 
Gdx.gl.glHint(GL10.GL_POLYGON_SMOOTH_HINT, GL10.GL_NICEST); 
Gdx.gl.glHint(GL10.GL_POINT_SMOOTH_HINT, GL10.GL_NICEST); 
+1

Thật không may, các hằng số bạn đã đề cập dường như không có trong phiên bản libGDX mới nhất. https://github.com/libgdx/libgdx/blob/master/gdx/src/com/badlogic/gdx/graphics/GL20.java – Travis

+0

Đúng, chúng chỉ khả dụng nếu bạn sử dụng OpenGL ES 1.0, không phải 2.0 – Wizche

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