2010-07-03 4 views
5

Trong khi thử nghiệm ứng dụng OpenGL ES của tôi trên iPhone 4 mới, có vẻ như openGL không sử dụng tất cả 326 ppi, thay vì 163 ppi được tìm thấy trên 3G, do pixelation đáng chú ý. Tôi nhận ra rằng có nhiều hơn 4 lần pixel để tính toán, nhưng không phải là chip A4 bù đắp cho điều này?Có thể sử dụng toàn bộ 326 ppi của iOS 4 cho OpenGL không?

Tôi chắc chắn có một cách để tận dụng lợi thế của độ phân giải tuyệt đẹp, như tôi đã thấy trong các ứng dụng trên iTunes Store, nhưng làm cách nào?

Trả lời

8

Vâng, nó cũng khá dễ dàng. Theo mặc định, chế độ xem OpenGL sử dụng chế độ quy mô cũ để không chia nhỏ các ứng dụng hiện có vì nó là API dựa trên pixel thay vì API dựa trên điểm.

Để khắc phục điều này, hãy đặt nội dungCổ điển của CAEAGLLayer thành 2.0 và chìm trong vinh quang.

+1

oooooooohhhhhhh… .. aaaaahhhhhhhhhhhhhh .. Tôi có thể thấy ánh sáng ngay bây giờ! Cảm ơn! – pop850

1

Không quen thuộc với CAEAGLLayer, cú pháp để đặt contentScale thành 2.0 là gì?

+0

'layer.contentScale = 2.0f' –

+0

Hm, đó là những gì tôi nghĩ trước, nhưng trình biên dịch tuyên bố nó không có thành viên như vậy? Đây là mã của tôi: CAEAGLLayer * eaglLayer = (CAEAGLLayer *) self.layer; eaglLayer.contentScale = 2.0; Đồng thời eaglLayer-> contentScale = 2.0; không hoạt động ... Tôi phải thiếu một cái gì đó thực sự ngu ngốc ở đây ... – sinsro

+0

Ok, đã nhận nó ngay bây giờ. Dường như bạn có một lỗi đánh máy ở đó, nó phải là layer.contentsScale = 2.0f; Ngoài ra, tốt hơn chỉ ra cơ sở nhu cầu này SDK 4.0. :) – sinsro