2012-05-13 27 views
12

Sự khác nhau giữa tọa độ kết cấu U V so với tọa độ kết cấu S T là gì?Sự khác biệt giữa tọa độ kết cấu U V và S T

Tôi biết rằng U V và S T được sử dụng trong OpenGL.

Tôi cũng biết rằng S T cũng được sử dụng trong Java.

+2

"Tôi biết rằng U V và S T được sử dụng trong opengl" Không có vị trí trong đặc tả kỹ thuật OpenGL * bao giờ * đề cập đến UV. –

+1

@NicolBolas Có, ví dụ phương trình 8.7 trong thông số kỹ thuật OpenGL 4.3. – kusma

Trả lời

17

Chúng có nghĩa giống nhau, nó chỉ là một quy ước đặt tên khác.

U = S = x dimension 
V = T = y dimension 
+0

Trên thực tế, trong CG, bạn sử dụng một cặp các điểm kết hợp đó để biểu thị vị trí trong không gian kết cấu, và cái kia nằm trong không gian đối tượng. Các API khác nhau đôi khi gây nhầm lẫn hoặc sử dụng các API khác nhau. – Arne

+1

@Arne chưa bao giờ nghe nói về điều này. Bạn có thể trích dẫn một nguồn không? –

+1

@StefanHanke Hm, tôi nhìn, nhưng không thể tìm thấy nó. Có lẽ tôi đã sai. Dù sao, đây chỉ là thuật ngữ. Tôi tìm thấy giấy lập bản đồ vết sưng của Blinn rất tốt để hiểu được bản đồ kết cấu và các hoạt động kết cấu không gian nói chung (http://research.microsoft.com/apps/pubs/default.aspx?id=73939). – Arne

1

Đó là vấn đề về quy ước.

Autodesk 3D Studio, Bí danh Maya, NewTek Lightwave và có thể những người khác sử dụng chữ cái U và V cho tọa độ kết cấu ngang và dọc, tương ứng. DirectX tuân theo quy ước tương tự.

Trình kết xuất đồ họa của Pixar tuy nhiên đã đặt các chữ cái U và V cho các tham số trong nguyên thủy 3D tham số của chúng. Vì vậy, để kết cấu, họ đã sử dụng S and T để thay thế. OpenGL cũng sử dụng quy ước này cho các tọa độ kết cấu.

Vì vậy, ý nghĩa của chúng có thể khác nhau về lý thuyết nhưng, trừ khi bạn làm việc trên một số hiệu ứng đặc biệt của phim Hollywood, có thể cả hai đều là tọa độ kết cấu.

20

Computer graphics principles and practice (Foley et al) xác định 2 như sau:

mapping Texture có thể được thực hiện theo hai bước. Một cách tiếp cận đơn giản bắt đầu bằng cách ánh xạ bốn góc của điểm ảnh lên bề mặt. Đối với một bản vá bicubic, bản đồ này tự nhiên định nghĩa một tập hợp các điểm trong không gian tọa độ (s, t) của bề mặt . Tiếp theo, điểm góc của điểm ảnh trong không gian tọa độ của bề mặt (s, t) được ánh xạ vào không gian tọa độ (u, v) của kết cấu Bốn điểm (u, v) trong bản đồ kết cấu xác định tứ giác gần đúng hơn hình dạng phức tạp thành mà pixel thực sự có thể ánh xạ do độ cong bề mặt. Chúng tôi tính toán giá trị cho pixel bằng cách tổng hợp tất cả các tex nằm trong phạm vi tứ giác , trọng số từng phần của phần tử nằm ở trong tứ giác. Nếu một điểm chuyển đổi trong (u, v) không gian rơi bên ngoài bản đồ kết cấu, bản đồ kết cấu có thể e mặc dù là sao chép, giống như các mẫu của Phần 2.1.3 Thay vì sử dụng ánh xạ danh tính giữa (s, t) và (u, v), chúng ta có thể định nghĩa một sự tương ứng giữa bốn góc của hình chữ nhật 0 đến 1 (s, t) và một tứ giác trong (u, v). Khi bề mặt là đa giác, nó là phổ biến để gán tọa độ bản đồ kết cấu trực tiếp lên đỉnh của nó.

+1

Rất đẹp. Vì vậy, có một sự khác biệt. Tùy thuộc vào di chuyển gói 2 cặp ST khác nhau có thể cho cùng một cặp UV. ST là tọa độ bề mặt và UV là tọa độ kết cấu khi chúng được bao bọc. –

+2

Đó là chính xác. Tôi tham khảo thông số kỹ thuật OpenGL ES 2.0, phần 3.7 về kết cấu. (S, T) là một cặp chuẩn hóa cho đoạn. (U, V) có thể được coi là chiều rộng và chiều cao của mảng kết cấu trong các ô. Các điều khoản không nên được sử dụng hoán đổi cho nhau. – dturvene

4

uv tọa độ bắt đầu từ trên bên trái góc (v trục quay xuống).
st tọa độ bắt đầu từ góc dưới bên trái góc (trục t hướng lên trên).

s = u; 
t = 1-v; 

Tôi quên nói rằng kết cấu trong OpenGL nên được nạp theo chiều dọc lộn vì phần tử đầu tiên của dữ liệu hàng "tương ứng với góc dưới bên trái của hình ảnh kết cấu" (see glTexImage2D). Chỉ trong trường hợp đó, tọa độ st và uv có vẻ giống nhau.

+4

Tôi không nghĩ rằng tọa độ tia cực tím bắt đầu ở góc trên bên trái. Chúng bắt đầu ở góc dưới bên trái, cũng như mọi hệ tọa độ khác trong OpenGl. Tuy nhiên, một số định dạng hình ảnh lưu trữ dữ liệu của chúng bắt đầu ở dưới cùng, điều này buộc bạn phải bật lên để lật hình ảnh hoặc giả vờ rằng hệ tọa độ bắt đầu ở phía trên bên trái. – maja

+0

Cảm ơn rất nhiều, '1-v' đã khắc phục sự cố trong xuất bản Maya của tôi thành 3.js. : D – lama12345

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