Trường (Fields)#

Về cơ bản, trường là một hàm: một tập hợp các lệnh có thể biến hóa một số đầu vào tùy ý thành một đầu ra duy nhất. Kết quả của một trường sau đó có thể được tính toán nhiều lần với các dữ liệu đầu vào khác nhau. Chúng được sử dụng trên toàn bộ các nút hình học để cho phép tính toán có kết quả khác nhau cho mọi phần tử (điểm đỉnh khung lưới, các mặt, v.v.).

../../_images/modeling_geometry-nodes_fields_title.png

Một trường đầu vào cho một nút.#

For example, in the figure above, the field connected to the "Set Position" node depends on two inputs, Position and Index, and transforms them into a vector using a single instruction.

Hình Tượng của Trường (Field Visualization)#

Hình dạng ổ cắm được sử dụng để truyền tải ổ cắm nào là trường và ổ cắm nào là dữ liệu thông thường. Có thể có ba hình dạng ổ cắm, mỗi hình dạng hình tượng hóa "tình trạng trường" của nó:

Hình/Vòng/Tròn (Circle):

Ổ cắm yêu cầu một giá trị thực duy nhất, và nó không thể chấp nhận đầu vào trường. Đối với các ổ cắm đầu ra, chức năng này có nghĩa là nút luôn luôn xuất ra một giá trị duy nhất.

Hình Kim Cương (Diamond):

Ổ cắm có thể chấp nhận đầu vào trường hoặc nó cung cấp đầu ra của một trường. Một giá trị duy nhất không đổi có thể được kết nối với các ổ cắm này, song sau đó đầu ra thường sẽ không thay đổi mấy cho mỗi phần tử.

Hình Kim Cương với Chấm Tròn (Diamond with Dot):

Ổ cắm có thể là một trường, nhưng nó hiện là một giá trị duy nhất. Chức năng này hữu ích vì nó cho phép theo dõi nguồn, nơi các đơn giá trị được tính toán, thay vì một trường có nhiều kết quả khác nhau. Điều đó cũng có nghĩa là Kiểm Tra Ổ Cắm (Socket Inspection) sẽ hiển thị giá trị thay vì các tên đầu vào của trường.

../../_images/modeling_geometry-nodes_fields_constant.png

Hình dạng ổ cắm là một hình kim cương với một dấu chấm tròn, có nghĩa là trường có cùng giá trị cho mọi phần tử. Mỗi điểm sẽ được dịch chuyển lên 5 m.#

../../_images/modeling_geometry-nodes_fields_varying.png

Hình dạng ổ cắm là một hình kim cương và đầu vào trường bây giờ có một đầu vào biến đổi. Nói theo cách khác, giá trị có thể khác nhau đối với mọi phần tử. Trong trường hợp này, vị trí sẽ được nhân đôi, vì dịch chuyển cho mọi điểm là vị trí của điểm.#

Mẹo

Often it is desired to extract a single value from a field. While it doesn't make sense conceptually to simply change a field into a single value, the Nút Chỉ Số Mẫu Vật (Sample Index Node) or the Nút Thống Kê Thuộc Tính (Attribute Statistic Node) can be used to retrieve a single value from a field evaluated on a geometry.

Khi một kết nối được thực hiện giữa hai ổ cắm nút hỗ trợ các trường thì kết nối nút sẽ được vẽ dưới dạng một đường đứt nét. Nếu bạn nhầm lẫn, kết nối một ổ cắm không phải là trường với một ổ cắm là trường, thì kết nối sẽ được vẽ dưới dạng đường màu đỏ trơn đặc, báo cho biết rằng có lỗi xảy ra.

Thể Loại Nút (Node Types)#

Các nút có thể được phân ra thành hai hạng mục: các nút luồng dữ liệu thường truyền hình học và các nút trường hoạt động trên dữ liệu cho mỗi phần tử. Các nút trường có thể là các nút đầu vào đưa dữ liệu hình học vào cấu trúc cây nút, hoặc các nút hàm hoạt động trên dữ liệu đó.

Nút Luồng Dữ Liệu (Data Flow Nodes)#

Các nút có đầu vào là hình học và đầu ra là hình học hầu như sẽ luôn luôn là các nút của luồng dữ liệu. Có nghĩa là chúng thực sự thay đổi dữ liệu hình học sẽ được xuất ra từ bộ điều chỉnh Các Nút Hình Học.

Nút Hàm (Function Nodes)#

Nodes with diamond socket inputs and outputs are field nodes, and resemble the instructions that will be evaluated by data flow nodes. Examples of function nodes are the math nodes and also more complex nodes like the Nút Mức Cận Độ Hình Học (Geometry Proximity Node).

Nút Đầu Vào (Input Nodes)#

Input nodes provide data to the field evaluation process. By themselves, they mean nothing; they must be evaluated within the context of a data flow node (geometry) to actually output a value. Examples of input nodes are the built-in attribute input nodes like Position and ID, but also selection nodes like Endpoint Selection.

Các đầu vào của trường cũng có thể đến từ các nút khác xử lý hình học như Phân bố các điểm trên các Mặt (Distribute Points on Faces), ở dạng Thuộc Tính Ẩn Danh (Anonymous Attributes).

Ngữ Cảnh Trường (Field Context)#

Toàn bộ các nút trường hoạt động trong ngữ cảnh của nút luồng dữ liệu mà chúng kết nối với. Bối cảnh thường bao gồm một thể loại thành phần hình học và một phạm vi thuộc tính, vì vậy nó xác định dữ liệu nào được truy xuất từ các nút đầu vào.

Một sự Hiểu lầm phổ biến là cùng một cấu trúc cây nút trường được sử dụng ở nhiều nơi sẽ xuất ra cùng một dữ liệu. Cái này không nhất thiết là một sự thật, vì cấu trúc cây nút trường sẽ được đánh giá cho mọi nút luồng dữ liệu, có khả năng lấy dữ liệu từ một hình học khác hoặc hình học đã thay đổi.

../../_images/modeling_geometry-nodes_fields_flow-1.png

Here, the Set Position node's input field is evaluated once. To evaluate the field, the node traverses backwards to retrieve the inputs from the field input nodes.

../../_images/modeling_geometry-nodes_fields_flow-2.png

Khi một nút Đặt Vị Trí thứ hai được cho thêm vào, cùng một cấu trúc cây nút trường sẽ được đánh giá hai lần, mỗi lần cho một nút luồng dữ liệu. Tại nút Đặt Vị Trí thứ hai, kết quả sẽ khác vì đầu vào hình học của nó sẽ có vị trí đã thay đổi từ nút đầu tiên.

../../_images/modeling_geometry-nodes_fields_flow-3.png

Thường thì chúng ta cần phải sử dụng các giá trị trường giống nhau ngay cả sau khi thay đổi hình dạng. Nút Nắm Bắt Thuộc Tính (Capture Attribute Node) đánh giá một trường, sao chép kết quả vào thuộc tính thuộc tính ẩn danh (anonymous attribute) trên hình học.

Ở đây, một nút Nắm Bắt Thuộc Tính lưu trữ một bản sao của vị trí ban đầu. Lưu ý rằng đánh giá đầu vào trường của nút Nắm Bắt Thuộc Tính là một bước hoàn toàn khác. Sau đó, các trường đầu vào cho các nút Đặt Vị Trí không sử dụng vị trí thực tế, mà là bản sao thuộc tính ẩn danh của nó.