2010-10-24 29 views
9

Tôi đã bắt đầu làm việc với OpenGL và viết shader. Ứng dụng của tôi kiểm tra lỗi sau khi tải và biên dịch chương trình đổ bóng và nếu có sự cố, ứng dụng sẽ in ra nhật ký thông tin. Điều này là rất tốt để bắt lỗi (và tôi là một newbie vì vậy tôi đang làm rất nhiều), nhưng những gì tôi muốn thực sự như là để nắm bắt những lỗi này tại thời gian xây dựng.Có công cụ lint cho Ngôn ngữ Shading OpenGL không?

Nếu tôi có công cụ lint chỉ đơn giản là có thể kiểm tra đỉnh hoặc đổ bóng cho lỗi cú pháp, tôi có thể thêm nó vào quá trình xây dựng của mình và dừng nó lại.

Tôi chưa thể tìm thấy công cụ như vậy. Tôi bắt đầu cố gắng viết một, nhưng tôi đang làm việc trên OpenGL ES và có trouble trying to write a desktop program that links against the ES libraries.

Có thể tôi đã bỏ lỡ nó ở đâu đó. Công cụ như vậy có tồn tại không?

+0

Bạn chỉ có thể sử dụng các trình điều khiển đồ họa Shader biên dịch hỗ trợ trong quá trình xây dựng (ít nhất là bất cứ khi nào có sẵn). Tuy nhiên, nhiều người trong số đó là quá tha thứ và sẽ vượt qua những sai lầm mà nên bị bắt. Vì vậy, tôi đang tìm một công cụ * lLS * gLSL lint hoặc validator. – Tronic

Trả lời

5

Bạn có thể xây dựng trình đổ bóng trên dòng lệnh, giống như cách bạn biên dịch chương trình c hoặc C++ hoặc bất kỳ thứ gì bạn đang sử dụng. Nếu bạn đang sử dụng Makefile, chỉ cần thêm trình biên dịch của các trình đổ bóng.

Bạn có thể sử dụng trình biên dịch Cg để biên dịch cả trình đổ bóng Cg và GLGL. Nó sẽ có sẵn trên tất cả các nền tảng.

+0

Trình biên dịch Cg sẽ nhổ ra các lỗi cho bạn, vì vậy bạn có thể xử lý chúng trong các kịch bản xây dựng của bạn. Hoặc, bạn có thể buộc trình biên dịch Cg vào một ứng dụng C++ tùy chỉnh và xem nó để trả về bất kỳ lỗi nào, sau đó bạn có thể xử lý khi cần thiết. – ssube

+0

Có vẻ đầy hứa hẹn, nhưng dường như không hỗ trợ OpenGL ES 2.0, đây là phiên bản tôi cần. – benzado

+0

Bạn chỉ cần cài đặt trình biên dịch cg trên PC của bạn và biên dịch các trình đổ bóng. Trình biên dịch Cg có thể được sử dụng như một công cụ dòng lệnh. –

1

Bạn có thể điều chỉnh Shader Toy để sử dụng này. Nó biên dịch mã đổ bóng dựa vào WebGL (dựa trên OpenGL ES) và báo cáo lỗi (và cũng chạy trình đổ bóng để bạn có thể kiểm tra đầu ra).

Bạn sẽ cần một prerelease build of Firefox (Minefield) or Chrome (Canary) để chạy nó trong.

Tôi không chắc chắn làm thế nào bạn muốn khai thác kết quả tình trạng biên soạn để ngăn chặn quá trình xây dựng ... Có ways to write results to a local file from javascript nhưng họ đang hơi lông ...

Tuy nhiên, vẫn có thể cải tiến quy trình phát triển của bạn để kiểm tra các thay đổi mã đổ bóng của bạn tương tác trong Shader Toy trước khi biên dịch ứng dụng dành cho máy tính để bàn của bạn. Vì bạn có vẻ như bạn đang phát triển trên một máy tính để bàn cho các thiết bị di động (phải không?), Đây sẽ là một chiến thắng.

Mặt khác, nếu bạn quản lý để ứng dụng dành cho máy tính để bàn hoạt động liên kết với các thư viện ES, thì đó dường như là một công cụ mà các nhà phát triển sẽ hưởng lợi.

+1

Có một Trình tạo bóng của OpenGL như là một phần của các công cụ phát triển của Apple, vì vậy tôi chủ yếu được thiết lập để thử nghiệm tương tác. Tôi muốn kiểm tra cú pháp để bắt những sai lầm ngớ ngẩn khi tôi thực hiện những thay đổi nhỏ, hoặc khi tôi cố gắng sử dụng các biến toàn cầu không tồn tại (vì rất nhiều đã bị loại bỏ trong ES 2.0, nhưng rất nhiều hướng dẫn giả sử GLSL trên máy tính để bàn). – benzado

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