12/08/2018, 14:29

Shader in Unity

Chào các bạn, trong bài viết này mình xin giới thiệu đôi chút về Shader trong Unity. Trước tiên: 1. Shader Theo như trong tài liệu của Unity3D thì Shader là các đoạn script nhỏ có chứa những cái tính toán về toán học, thuật toán để tính toán màu sắc cho từng pixel rendered, dựa trên ánh sáng ...

Chào các bạn, trong bài viết này mình xin giới thiệu đôi chút về Shader trong Unity. Trước tiên:

1. Shader

Theo như trong tài liệu của Unity3D thì Shader là các đoạn script nhỏ có chứa những cái tính toán về toán học, thuật toán để tính toán màu sắc cho từng pixel rendered, dựa trên ánh sáng và những tùy chỉnh Material.

Unity có hỗ trợ 3 loại Shader. Nhưng chỉ có 2 loại thường được sử dụng đó là Suface Shader và Fragment and Vertex Shaders, loại còn lại là Fixed Function Shader, nhưng loại này giờ hầu như không còn được sử dụng nữa bởi vì nó đã quá lỗi thời so với các loại Shader đang sử dụng hiện giờ.

2. Shader Lab

Tất cả các file Shader trong Unity đều được khai báo bằng một ngôn ngữ gọi là ShaderLab. Trong ShaderLab có các cú pháp cơ bản để định nghĩa nên những mô tả khác nhau cho Shader. Ví dụ như là các thuộc tính của Shader sẽ được hiển thị trong material trên Inspector mà bạn hay nhìn thấy.

CG là viết tắt của C for Graphics. Nó là ngôn ngữ shading bậc cao đã được phát triển bởi Nvidia phối hợp với Microsoft cho lập trình Vertex và pixel Shader. CG thì base trên ngôn ngữ C, mặc dù chúng có cùng cú pháp nhưng một vài tính năng của C đã được sửa đổi và các kiểu dữ liệu mới được thêm vào sao cho CG phù hợp hơn với các đơn vị xử lý đồ họa lập trình. Ngôn ngữ này chỉ phù hợp phù hợp cho lập trình GPU và không như một ngôn ngữ lập trình chung. Biên dịch Cg có kết quả đầu ra DirectX hoặc OpenGL.

4. Material là gì?

Như nào nhỉ? Mọi người có thể hiểu như thế này nhé: Một Material là một asset có thể đưa vào một mesh để điều khiển cái cách nhìn nhận trực quan của cảnh, làm cho cảnh trong máy có thể mô tả được giống nhất với ý định của người tạo cảnh. Hoặc nghĩ thoáng hơn, liên hệ thực tế hơn chat thì nó như kiểu là sơn được sơn lên cho một đối tượng, hoặc là như cấu trúc 1 bức tường ban đầu chỉ toàn là cốt thép, xương xẩu thì nó như là xi măng để chat lên đó rồi mình nhìn thấy được nó ra một hình hài, màu sắc một bức tường. À đó lại còn kaái niệm về Mesh ở trên nữa. Hầy, nếu như với một người mới tiếp cận 3D thì đúng là cần nắm được kha kha những hiểu biết về những cái này. Nhiều thậc, nhưng dần rồi sẽ quel.             </div>
            
            <div class=

0