OpenGL ES 2.0: Kho lưu trữ Shader chất lượng [đã đóng]


10

Tôi có thể vui lòng hỏi, để gợi ý cho tôi một kho lưu trữ các đỉnh shader và mảnh vỡ OpenGL (OpenGL ES 2.0) chất lượng cao không?

Tôi đang tìm kiếm các shader shigting dựa trên pixel (như phong ) và simmilar. Sẽ thật tuyệt khi nhìn thấy nhiều hơn trong số họ, để có thể lựa chọn giữa hiệu suất chất lượng và hiệu suất đổ bóng.

Câu trả lời:


16

Các shader của bất kỳ sự phức tạp nào thường không phải là thứ bạn có thể tải xuống và thả vào dự án của mình như các bánh răng có thể hoán đổi cho nhau. Thông thường, các hiệu ứng thú vị hơn đòi hỏi một chút khớp nối với hệ thống con kết xuất phía CPU để đạt được kết quả của chúng. Điều tương tự cũng đúng về hiệu suất - sự đánh đổi hiệu suất liên quan đến độ chính xác và chất lượng so với số lượng chỉ dẫn hoặc đường ống có xu hướng bắt nguồn từ các yêu cầu cụ thể của ứng dụng.

Kết quả là thực sự không có nhiều thứ theo cách của kho lưu trữ mà bạn đang nghĩ đến. Các cuốn sách GPU Gems cung cấp một bộ sưu tập tốt các mô tả kỹ thuật kiểu sách nấu ăn với cả các ví dụ mã trò chơi và bóng mờ mà bạn có thể muốn xem qua, mặc dù. Các cuốn sách Shader X cũng vậy.


+1 cho nhận xét rất có giá trị. Chào Josh. Cám ơn phản hồi của bạn. Chà, nếu một người đang bắt đầu phát triển shader, thật sự rất hữu ích khi xem cách thực hiện một số shader tiêu chuẩn: Ví dụ như cách Phong (thuật toán rất chuẩn) được thực hiện, shader ánh sáng pixel, v.v. điểm, và các nguồn bạn cung cấp âm thanh như một vật liệu tốt. Tôi sẽ xem xét chúng. Cho đến nay, các tài nguyên tốt nhất tôi đã tìm thấy là: sách Ngôn ngữ tạo bóng OpenGL và trang web Ngọn hải đăng 3D.
Bunkai.Satori

2
Do đó, tôi vẫn sẽ hoan nghênh các kho lưu trữ các shader chất lượng tốt , minh họa cho sự phát triển của các hiệu ứng thú vị. Các kịch bản có thể được sử dụng làm tầng hầm để kết hợp chúng và tạo hiệu ứng hấp dẫn mới.
Bunkai.Satori

@Bunkai Satori Tôi nghĩ Josh có nghĩa là vì một lý do mà các loại kho lưu trữ này không tồn tại chủ yếu.
Vịt Cộng sản

@ Vịt Cộng sản: Xin chào, cảm ơn vì nhận xét của bạn. Tôi hiểu điều đó. Tôi biết ơn mọi phản hồi ở đây và cho Josh cũng vậy. Tuy nhiên, điều tôi nghĩ đến là, mạng internet rất lớn, đến nỗi có lẽ ai đó không phải Josh sẽ nhớ đến việc nhìn thấy một số nơi để lấy cảm hứng từ những shader đặc biệt. Tôi có thể tưởng tượng, rằng một công ty / cá nhân sử dụng shader rất nhiều, sẽ thu thập chúng, và một số trong số họ cũng có thể xuất bản chúng. Câu trả lời của Josh là ứng cử viên của tôi cho Câu trả lời được chấp nhận , vì vậy nếu không có ai đóng góp trong thời gian ngắn, tôi sẽ đóng chủ đề này để đánh dấu câu trả lời của anh ấy.
Bunkai.Satori

13

Không nhiều, nhưng ít nhất một vài shader cơ bản để bắt đầu cũng có thể được tìm thấy giữa các tập tin công cụ mở của tôi:

các tệp .vsh chứa các shader đỉnh và các tệp .fsh các shader mảnh, nhưng tôi đoán đó là tự giải thích ...

Trên phần cứng di động hiện tại, bạn nên làm nhiều nhất có thể trong trình tạo bóng đỉnh và mẹo cho các trò chơi nhanh và đẹp là viết nhiều trình tạo bóng rất chuyên dụng, luôn luôn làm chính xác những gì cần thiết để làm cho nó trông giống như vậy. Ít nhất đó là trải nghiệm của tôi với iPhone 3GS, có tính năng gpu giống như iPhone 4 nhưng có ít pixel hơn để phân phối dữ liệu. Điều này có lẽ đã tốt hơn nhiều với tegra 2 và thậm chí tốt hơn với chip A5 của táo, nhưng hiện tại, điều này có nghĩa là bạn không nên thử chuyển shader cho máy tính để bàn sang điện thoại di động và mong đợi một hiệu suất tuyệt vời: P Điều này cũng có nghĩa là toàn màn hình hiệu ứng, đặc biệt là trên các thiết bị có màn hình độ phân giải cao có xu hướng bị chậm.

Hy vọng điều này cũng giúp một chút :).


Xin chào, chào mừng đến với GDSE. Câu trả lời tốt đẹp!
Notabene

+1 cho câu trả lời tốt. Xin chào Slin và chào mừng bạn đến với GDSE. Cảm ơn bạn cho câu trả lời tốt này và cho các công cụ ví dụ. Tôi rất vui, bạn đã chia sẻ kinh nghiệm của mình với chương trình shader cho nền tảng di động. Tại thời điểm này, tôi thực hiện tất cả các phát triển trên PC, dự định chuyển sang cổng sau. Vì vậy, kinh nghiệm của bạn sẽ được đánh giá cao sau đó.
Bunkai.Satori

9

có thể lấy một số kiến ​​thức phức tạp từ đây http://glslsandbox.com/


Xin chào UlanB. Bộ sưu tập này trông tuyệt vời. Bạn có thể vui lòng cho tôi biết làm thế nào tôi có thể tải về các shader này. Tôi gặp lỗi khi nói "WebGL không được hỗ trợ" khi tôi cố mở bất kỳ bộ sưu tập shader nào trong chrome. Cảm ơn bạn.
Vinodtiru

Tôi xin lỗi, tôi thực sự không thể cung cấp cho bạn hỗ trợ công nghệ về khả năng tương thích webgl. Có lẽ phần cứng của bạn không hỗ trợ webgl. Ngoài ra, Linux Chrome Builds chưa hỗ trợ.
UlanB

4

Khi tôi đang tìm cách triển khai sương mù trong OpenGL ES 2.0, tôi đã tìm thấy liên kết đến chức năng triển khai dự án tương thích ngược OpenGL ES 2.0 , không có trong OpenGL ES 2.0, ví dụ như sương mù, trên mỗi đỉnh, trên mỗi mảnh (pixel). Bạn có thể nhìn trực tiếp vào nguồn shader .

Tôi cũng đã thực hiện chiếu sáng theo từng mảnh, sửa đổi ví dụ này được tạo bởi ClockworkCoders (không phải OpenGL ES 2.0).

Bạn cũng có thể xem những hướng dẫn tuyệt vời này của lighthouse3D


+1 cho nhận xét tốt. Xin chào Martin, cảm ơn các liên kết của bạn. vâng, tôi đã tìm thấy Lighthouse3D, và có vẻ như tài nguyên chất lượng.
Bunkai.Satori

1

Gói AMD RenderMonkey chứa các trình tạo bóng rất tiên tiến cho OpenGL ES 2.0 trong số các tệp mẫu.

Đặc biệt hãy xem mẫu shader Renderman trong thư mục mẫu GLES, cung cấp trình tạo bóng OpenGL ES 2.0 đơn giản hoặc ít có thể đóng vai trò là điểm khởi đầu tốt. Và cũng có thể cung cấp cho bạn một ý tưởng tốt về lý do tại sao không có nhiều ví dụ cắt và dán của các shader tốt ngoài kia. Vấn đề cơ bản: các shader được kết hợp chặt chẽ với cấu hình máy chủ OpenGL ES và các mô hình được kết xuất trên chúng. Vẫn. Trình tạo bóng Renderman là một điểm khởi đầu tuyệt vời, nếu bạn có thể rút nó ra khỏi công cụ REnderMonkey.


1

Hãy xem GPUImage ( https://github.com/BradLarson/GPUImage ), đây có lẽ là bộ sưu tập shader hoàn chỉnh nhất mà tôi tìm thấy trên web cho đến nay. Vì tất cả chúng đều được thiết kế để hoạt động với GPUImage, tất cả chúng đều có chung cấu trúc, vì vậy nếu bạn điều chỉnh cùng cấu trúc trong ứng dụng / trò chơi của mình, bạn sẽ có thể nhanh chóng nhập một số hiệu ứng khác nhau.

Chúc mừng!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.