Site icon Nhạc lý căn bản – nhacly.com

Fragment Shader Là Gì ? Vertex Và Pixel Shader Là Gì

Cơ chế render trong Unity

Đối với những người mới bắt đầu làm quen với Unity thì việc hiểu được cơ chế mà Unity có thể render ra đồ hoạ với các hiệu ứng đi kèm như thế nào rất quan trọng. Khi hiểu được cơ chế, cách hoạt động và các thành phần mà Unity sử dụng thì bạn có thể tuỳ chỉnh để tạo ra các hiệu ứng mà bạn muốn đối với các model,resources mà bạn đưa vào.

Bạn đang xem: Shader là gì

*

Giới thiệu về Shader

Mô hình trên đây miêu tả những thành phần cơ bản mà Unity dùng để render. Models : Tập hợp những điểm toạ độ trong khoảng trống 3D, mỗi điểm này hoàn toàn có thể chứa những thông tin về màu, hướng, toạ độ để gán texture lên đó ( UV Data ). Các điểm này liên kết với nhau tạo thành những hình tam giác ( Triangles ). Material : Material là vật tư bảo phủ trên mặt phẳng để Mã Sản Phẩm đó hoàn toàn có thể hiển thị trên unity. Trong Material sẽ gồm có những textures và shader. Unity sẽ dùng những thuộc tính, giá trị được set trong Shader để render ra và hiển thị trên những thiết bị. Một shader hoàn toàn có thể dùng chung cho rất nhiều material và bạn cũng hoàn toàn có thể thuận tiện kiểm soát và điều chỉnh những tham số của shader để giúp cho những material đó khác nhau .

Shader là một chương trình đặc biệt được viết ra để chạy trên GPU( bộ xử lý đồ hoạ). Với shader thì bạn có thể làm cho game hay ứng dụng của bạn có các hiệu ứng hìngh ảnh sống động và cuốn hút hơn.

Unity cung cấp cho chúng ta ShaderLab giúp cho việc tạo ra các shader dễ dàng hơn. Hiện tại thì Unity support hai loại shader chính: suface shaders và fragment and vertex shaders. Ngoài ra cũng có loại fixed function shaders, tuy nhiên loại này thì đã cũ và sẽ không support nữa.

Xem thêm: Cách Phân Biệt On Time Nghĩa Là Gì Và Cách Dùng Trong Tiếng Anh

Shader thì được viết bằng ngôn từ bậc cao Cg / HLSL .Shader ” Tutorial / Basic ” { Properties { _Color ( ” Main Color “, Color ) = ( 1,0. 5,0. 5,1 ) } SubShader { Pass { Material { Diffuse } Lighting On } } } Shader về cơ bản thì sẽ có 2 thành phần chính .Các PropertiesCác SubShaderCác PropertiesCác SubShader

Khi bắt đầu khối shader thì bạn có thể định nghĩa các thuộc tính bất kì mà bạn có thể thay đổi ở trên material inspector. Các thuộc tính thì được liệt kê trong block Properties, và mối property thì bắt đầu với định nghĩa tên nội bộ ( _Color), tiếp theo sau sẽ là tên sẽ được hiển thị trên inspector, kiểu vào giá trị mặc đinh.

Với các loại graphic hardware khác nhau năng lực xử lý của chúng cũng khác nhau. Chính vì thế mà không phải tất cả các thiết bị đều có thể xử lý được hết các xử lý mà bạn viết trong SubShader. Để giải quyết vấn đề này thì Shader cung cấp cho bạn các Pass. Trong mỗi SubShader lại là tập hợp của các Pases. Mối pass sẽ được thực thi lần lượt theo một thứ tự xác đinh.

Xem thêm: Hướng Dẫn Cách Kiếm Tiền Bằng Olymp Trade, Cơ Hội Kiếm Tiền Hay Sự Lừa Đảo

Pass { Material { Diffuse Ambient Shininess Specular Emission } Lighting On SeparateSpecular On SetTexture { constantColor Combine texture * primary DOUBLE, texture * constant }}

Demo đơn giản với shader

Phần trên là những khái niệm cơ bản nhất về Shader, phần này ta sẽ tạo ra một ứng dụng đơn giản từ Shader + Unity.

Source code bạn hoàn toàn có thể tìm hiểu thêm tại đâyTrong sources code ở trên có shader RippleEffect, demo ở trên sẽ biến hóa những properties của shader để tạo ra hiệu ứng giống như demo hình dưới đây .

Bạn hoàn toàn có thể tuỳ chỉnh lại hiệu ứng, sắc tố, vận tốc của effect tuỳ theo ý bạn. Và đặc biệt quan trọng bạn cũng hoàn toàn có thể thuận tiện thay ảnh demo bằng ảnh người khác mà bạn muốn :))

Kết luận

Trên đây chỉ là những kiến thức và kỹ năng cơ bản nhất về shader trong Unity mà mình muốn san sẻ với mọi người. Nếu muốn trở thành một nhà tăng trưởng game chuyên nghiệp nhất là game 3D thì shader là một phần rất quan trọng mà bạn phải khám phá .Link tìm hiểu thêm : https://unity3d.com/learn/tutorials/topics/graphics/gentle-introduction-shadershttps://docs.unity3d.com/Manual/ShaderTut2.html

Exit mobile version