Model 3D phù điêu: giữ vị trí điểm trong khung khi nén chiều sâu

1. Giữ một vị trí trên ảnh khác với giữ kích thước ngoài đời

Khi nghiên cứu model 3d phù điêu, có thể gặp một yêu cầu thú vị: giảm độ nhô trước nền nhưng vẫn để các điểm quan trọng nằm đúng chỗ trong một khung nhìn. Bài toán dưới đây thử làm điều đó bằng tọa độ. Kết quả được kiểm bằng phép tính, không dựa vào cảm giác hai hình trông tương tự nhau.

Hãy tưởng tượng một hình có điểm nhô gần người nhìn, điểm nằm giữa và điểm thuộc nền phía sau. Nếu kéo mọi điểm về phía nền, khoảng sâu của hình giảm. Tuy nhiên, mỗi điểm cũng đổi khoảng cách tới mắt. Vì thế, giữ nguyên vị trí ngang và đứng trong không gian chưa chắc giữ được vị trí tương ứng trong ảnh. Ta cần theo dõi đồng thời hai loại vị trí.

Chọn nền trước khi nói đến độ nhô

Trong bài này, nền là mặt phẳng có tọa độ sâu bằng 80. Các điểm của hình nằm từ mức 40 đến mức 80; người nhìn ở phía mức 0. Một điểm tại mức 40 cách nền 40 đơn vị về phía người nhìn, còn điểm tại mức 60 nhô 20 đơn vị. Quy ước độ nhô là h = 80 − z, trong đó z là tọa độ sâu.

Điều ta muốn giảm là h. Một điểm tiến về nền sẽ có z tăng nhưng h giảm. Cách đặt tên này quan trọng: nếu chỉ nói “giảm chiều sâu” rồi giảm mọi số z, ta có thể vô tình kéo điểm về phía mắt. Khi ghi cả z và h cạnh nhau, hướng chuyển động trở nên rõ ràng trước khi tính bất kỳ tọa độ ảnh nào.

Đơn vị được chọn tùy ý nhưng phải nhất quán. Chưa cần gán milimét, khổ tấm hoặc vật liệu cho các số. Ta đang xây một hình giả định để so hai cách biến đổi; việc xác định một kích thước sản phẩm cụ thể là bài toán khác. Giấy kẻ ô và một bảng ghi tọa độ đã đủ cho phần đối chiếu này.

Ảnh từ Mô Hình Điêu Khắc giúp hình dung quan hệ giữa hình nổi và nền. Hoa, lá hoặc cá cho những vị trí dễ nhận diện bằng mắt, nhưng bài không lấy tọa độ hoặc số đo chiều sâu từ ảnh.

Mảng hoa sen, lá và cá nổi trên nền sáng màu.
Các lớp hoa, lá và cá gợi việc tổ chức hình trước một nền. Bài dùng những điểm giả định để nghiên cứu phép nén, không lấy số đo hay dữ liệu 3D từ ảnh này. Nguồn: mohinhdieukhac.vn.

2. Khóa điểm nhìn và lập ba điểm mốc của hình giả định

Đặt điểm nhìn O tại gốc tọa độ, tức O = (0; 0; 0), và nhìn thẳng theo chiều z dương. Trục x chạy ngang, trục y chạy đứng. Mặt chiếu tưởng tượng nằm ở z = 100, có tâm tại chỗ trục nhìn đi qua. Tọa độ trên mặt này mang tên u và v để phân biệt với x và y của hình trong không gian.

Mặt chiếu chỉ là nơi kéo dài đường nhìn để đánh dấu giao điểm, không phải một tấm chắn phải đặt sau mẫu. Dùng dấu chấm phẩy ngăn các thành phần tọa độ, ta chọn A = (−10; 0; 40), B = (0; 10; 60), C = (10; 0; 80). A nằm bên trái, B nằm phía trên và C nằm trên nền.

Tính ba dấu trên cùng một khung

Ở hình nhìn ngang x–z, tia OA đi qua vị trí ngang −10 tại độ sâu 40. Kéo tia đến mức 100 tức tăng đoạn theo trục sâu lên 100/40 lần; đoạn ngang cũng tăng cùng tỷ lệ. Giao điểm có u bằng −25. Vì A có y bằng 0, dấu của nó nằm trên đường ngang qua tâm ảnh.

Với B, làm tương tự trong hình nhìn đứng y–z: đoạn đứng 10 được nhân với 100/60, cho v = 50/3, xấp xỉ 16,667. Tọa độ ngang của B vẫn bằng 0. Với C, đoạn ngang 10 được nhân với 100/80, cho u = 25/2 = 12,5; tọa độ đứng bằng 0. Ta đã có ba dấu đích để kiểm các bản biến đổi.

Phần giới thiệu mô hình camera lỗ nhỏ trong tài liệu OpenCV mô tả phép chiếu không méo bằng tỷ số tọa độ ngang, đứng với tọa độ sâu. Ở quy ước riêng của bài, công thức là u = 100x/z và v = 100y/z.

Ghi bộ số không gian và bộ số ảnh thành hai nhóm riêng. A có x bằng −10 nhưng u bằng −25; hai số cùng mô tả hướng ngang song không thay thế nhau được. Khi kiểm kết quả, chỉ so u với u, v với v. Còn khi hỏi hình thật đã rộng hoặc cao thêm bao nhiêu, phải quay lại x và y.

Cận gương mặt, mái tóc, hoa và bàn tay trong một mảng chân dung nổi màu sáng.
Vị trí mốc trên ảnh và độ nhô thật là hai thông tin khác nhau. Ảnh chân dung chỉ làm tham khảo hình, không phải bản trước hoặc sau phép biến đổi của bài. Nguồn: mohinhdieukhac.vn.

3. Chỉ nén trục sâu sẽ làm hai mốc dịch trong khung

Chọn quy tắc giữ lại một phần tư độ nhô trước nền. Điểm A nhô 40 sẽ còn nhô 10, B nhô 20 còn 5, C vẫn nằm trên nền. Vì nền ở mức 80, tọa độ sâu mới của ba điểm lần lượt là 70, 75 và 80. Khoảng từ điểm trước nhất đến nền giảm từ 40 xuống 10.

Viết gọn quy tắc ấy là z′ = 80 + (z − 80)/4. Dấu phẩy trên z chỉ giá trị sau biến đổi. Cách viết cho thấy ta lấy nền làm mốc rồi chia khoảng cách có dấu tới nền cho bốn. Nếu dùng z′ = z/4, nền 80 cũng chuyển thành 20, trái với yêu cầu nền phải đứng yên.

Bản N chỉ thay tọa độ sâu

Gọi cách thử đầu tiên là N: giữ x và y, chỉ thay z theo quy tắc vừa chọn. A trở thành (−10; 0; 70), B thành (0; 10; 75), C vẫn là (10; 0; 80). Các độ nhô đã đúng yêu cầu, nên nếu chỉ kiểm khoảng sâu thì N có vẻ đã hoàn thành nhiệm vụ.

Nhưng đưa các điểm N trở lại khung nhìn O cho kết quả khác. Dấu A có u = −100/7, xấp xỉ −14,286, thay vì −25. Dấu B có v = 40/3, xấp xỉ 13,333, thay vì 50/3. C vẫn có u bằng 12,5. Hai điểm đầu đã dịch về gần tâm ảnh dù tọa độ ngang hoặc đứng trong không gian không đổi.

Có thể nhìn ngay nguyên nhân trên giấy. Vẽ O, A và đường thẳng OA trong mặt x–z. Sau đó đánh điểm có cùng x bằng −10 nhưng z bằng 70. Điểm mới nằm gần trục nhìn hơn so với tia OA tại cùng độ sâu. Nó không còn thuộc đường cũ, nên kéo đường nhìn mới đến mặt chiếu sẽ gặp một chỗ khác.

C là một mốc đối chiếu hữu ích vì nó nằm đúng trên nền. Quy tắc mới không đổi độ sâu của C, nên việc giữ nguyên x và y cũng giữ dấu của nó. Nếu bỏ A và B, chỉ nhìn C rồi kết luận cả hình ổn, ta sẽ bỏ qua chính các điểm có độ nhô cần nén. Vì vậy, bộ mốc phải có những vị trí ở các mức sâu khác nhau.

Phép thử N giúp chia yêu cầu thành hai câu kiểm độc lập. Câu thứ nhất hỏi khoảng nhô có giảm đúng bốn lần hay không. Câu thứ hai hỏi dấu của từng điểm có còn ở tọa độ đích hay không. Một câu trả lời đúng không thay được câu còn lại. Chỗ lệch ở đây là hệ quả của quy tắc đã chọn, không cần viện đến lỗi phần mềm.

4. Đi theo chính tia nhìn để nén sâu mà giữ điểm chiếu

Bản K vẫn dùng những mức sâu mới 70, 75 và 80, nhưng chọn vị trí ngang, đứng theo một cách khác. Với mỗi điểm, hãy đi dọc chính tia nối nó với O đến khi gặp mức z′. Ta đã quyết định điểm đến ở đâu trên trục sâu; đường tia sẽ quyết định tiếp phải đi sang ngang và đi lên bao nhiêu.

Đối với A, mức sâu tăng từ 40 lên 70, tức nhân với 7/4. Tọa độ ngang vì vậy cũng nhân với 7/4: từ −10 thành −17,5. A′ là (−17,5; 0; 70). B dùng tỷ số 75/60 = 5/4, nên B′ là (0; 12,5; 75). C có tỷ số bằng 1 và giữ nguyên tọa độ.

Kiểm kết quả bằng chính các dấu đích

Chiếu lại A′: 100 × (−17,5)/70 = −25. Chiếu lại B′: 100 × 12,5/75 = 50/3. C vẫn cho 12,5 theo phương ngang. Cả ba dấu trở về đúng tọa độ đã ghi ở phần hai. Điểm trong không gian đã chuyển, nhưng chỗ giao của tia với mặt chiếu được giữ.

Quy tắc đầy đủ của K là x′ = x × z′/z và y′ = y × z′/z, đi kèm quy tắc z′ đã có. Khi chia x′ cho z′, thừa số z′ bị triệt tiêu, còn x/z; phương đứng cũng vậy. Đó là phép kiểm tổng quát cho các điểm có độ sâu trong khoảng đang xét, không chỉ một sự trùng hợp ở ba số đã chọn.

Đổi lại, A′ cách trục nhìn theo phương ngang nhiều hơn A. Độ lớn x tăng từ 10 lên 17,5, dù độ nhô giảm từ 40 xuống 10. B′ cũng cao hơn B theo trục y. Vì vậy, gọi K là thu nhỏ đồng đều cả vật sẽ sai: A dùng tỷ số 7/4, B dùng 5/4, còn C dùng 1.

Cũng không thể sửa bản nén bằng cách kéo rộng toàn bộ hình theo cùng một hệ số ngang rồi xem như đã dùng đúng quy tắc. Điểm gần mắt ban đầu cần đổi ngang nhiều hơn điểm gần nền; một hệ số chung không đáp ứng đồng thời những tỷ số khác nhau ấy. Cách dựng theo từng tia gắn mức thay đổi với độ sâu ban đầu của chính điểm đang xét. Đây là lý do phải giữ danh sách tọa độ gốc trong suốt phép kiểm, thay vì chỉ giữ bản đã nén sâu.

Một cách kiểm dễ nhớ là giữ hai bản vẽ cạnh nhau. Bản x–z cho thấy các điểm K nằm gần nền hơn và trải ngang khác đi. Bản u–v cho thấy ba dấu vẫn chồng đúng vị trí. Cặp bản vẽ ghi lại cả điều đạt được lẫn điều đã thay đổi, tránh để một ảnh phía trước che mất biến đổi kích thước trong không gian.

5. Hai điểm cùng tia vẫn cần thứ tự trước sau

Thêm D = (−20; 0; 80) trên nền. D có u = 100 × (−20)/80 = −25 và v bằng 0, trùng dấu A. Trong không gian, D khác A: độ sâu của D là 80, của A là 40. Trên tia đang xét, A ở trước, D ở sau. Một chỗ trên ảnh có thể gắn với nhiều vị trí sâu.

Khi áp dụng K, A đến mức 70 còn D vẫn ở mức 80. Cả hai vẫn cho dấu (−25; 0), nhưng A′ còn nằm trước D′. Ta kiểm riêng cặp này bằng hai việc: so vị trí ảnh để biết chúng còn chung tia, rồi so độ sâu để biết điểm nào đứng trước.

Giữ một khoảng sâu dương

Quy tắc z′ tăng theo z vì hệ số một phần tư là số dương. Lấy độ sâu mới của D trừ của A được 80 − 70 = 10, bằng một phần tư khoảng ban đầu 80 − 40 = 40. Trong cặp điểm này, nén làm khoảng cách theo trục sâu nhỏ hơn nhưng chưa làm hai vị trí nhập thành một.

Thử thay hệ số một phần tư bằng 0 để thấy ranh giới. Khi ấy, mọi z′ đều bằng 80. Tọa độ ngang mới của A là −10 × 80/40 = −20, đúng bằng x của D. Cả A và D cùng tới (−20; 0; 80). Dấu trên ảnh vẫn khớp, nhưng sự phân biệt trước sau của cặp đã mất.

Vì vậy, không nên xóa D khỏi bảng chỉ vì dấu của nó trùng A. Bảng tọa độ không gian đang giữ một thông tin mà ảnh từ O đã gom lại. Nếu cần mô tả phần nằm sau, D vẫn có ý nghĩa. Chọn lưu hay bỏ một điểm phải dựa vào nhiệm vụ của mô hình, không dựa riêng vào việc hai dấu chồng nhau.

Kiểm A và D là một kết luận cục bộ có phạm vi rõ. Nó cho biết cặp cùng tia này còn tách nhau khi dùng hệ số dương đã chọn. Nó chưa mô tả cách các mặt nối giữa hàng loạt điểm che nhau. Chuyện nhìn thấy một bề mặt hoàn chỉnh còn cần cấu trúc của bề mặt ấy.

6. Dời mắt sang phải và kiểm chỗ khớp vừa mất

Giữ nguyên bộ điểm gốc và bộ K, chỉ chuyển điểm nhìn tới E = (10; 0; 0). Hướng nhìn vẫn song song với trục z, hệ số chiếu vẫn bằng 100. Tâm của hệ tọa độ ảnh bây giờ nằm trên trục nhìn đi qua E. Ta không quay máy về một điểm đích và không phóng riêng từng ảnh để làm chúng vừa khung.

Từ E, tọa độ ngang tương đối của một điểm là x − 10. Vì vậy, dùng u = 100(x − 10)/z và v = 100y/z. Tất cả kết quả sau đây đều tính từ tâm ảnh mới ấy. Không cộng thêm 10 vào một vài dòng, vì làm vậy sẽ trộn tọa độ trên ảnh với vị trí của mắt trong không gian.

Một điểm lệch đã đủ bác bỏ lời hứa mọi góc

A gốc cho u = 100(−10 − 10)/40 = −50. A′ của bản K cho u = 100(−17,5 − 10)/70 = −275/7, xấp xỉ −39,286. Độ lệch ngang giữa hai dấu là 75/7, khoảng 10,714. Ở O, cả hai cùng nằm tại −25; sang E, chúng không còn chồng nhau.

B cũng tách dấu theo phương ngang: bản gốc cho u = −50/3, còn bản K cho u = −40/3. Tọa độ đứng của hai dấu B vẫn cùng bằng 50/3. Như vậy, một hướng còn khớp không cứu được vị trí hai chiều. C không biến đổi từ đầu nên vẫn khớp, lần này tại u bằng 0.

Điểm D vẫn cho u bằng −37,5. So với A gốc ở −50, hai điểm từng chung dấu tại O đã tách ra khi đổi mắt. So với A′ ở khoảng −39,286, độ tách lại nhỏ hơn. Ví dụ này giúp thấy nén sâu đã thay đổi quan hệ nhìn từ bên cạnh, ngay cả khi điểm trên nền đứng yên.

Có thể đọc độ lệch theo một cách nữa: khi mắt đi sang phải, dấu A gốc đi từ −25 tới −50, tức dịch trái 25 đơn vị. Dấu A′ đi từ −25 tới khoảng −39,286, tức dịch trái khoảng 14,286 đơn vị. Hai hình bắt đầu cùng một chỗ nhưng phản ứng khác nhau với cùng bước dịch mắt. Chênh lệch giữa hai mức dịch chính là khoảng tách vừa tính.

Để tự kiểm, hãy vẽ thêm E trên hình x–z rồi nối E với A và A′ bằng hai màu. Hai đường đi theo hướng khác nhau. Điều kiện mà K đáp ứng được xây theo các tia xuất phát từ O, nên không tự chuyển sang các tia xuất phát từ E. Đây là giới hạn được chỉ ra bằng số cụ thể.

Mảng tường có các dải cong nổi phía sau quầy, với ba người ở phía trước.
Một mảng được xem từ vị trí cụ thể trong không gian. Bài sẽ đổi điểm nhìn trên mô hình tính toán, không coi ảnh này là thử nghiệm đã ghi nhận. Nguồn: mohinhdieukhac.vn.

7. Tách bản kiểm điểm khỏi diện mạo và khả năng chế tác

Đến đây có thể gom kết quả thành ba dòng ghi chép. Bản gốc có độ nhô A, B, C là 40, 20, 0. Bản N và bản K cùng giảm chúng xuống 10, 5, 0. Tại O, N làm lệch A và B, còn K giữ cả ba dấu. Tại E, A và B của K không còn khớp với bản gốc.

Nếu dựng các điểm trong một chương trình, trước hết hãy nhập đúng trục, điểm nhìn và hệ số của bài. Một chế độ nhìn song song sẽ không thực hiện cùng bài toán. Hãy kiểm vài tọa độ số trước khi đánh giá bằng hình trên màn hình; thao tác xoay khung nhìn hoặc tự căn hình có thể đã thay điều kiện đang so sánh.

Từ điểm đến mặt còn một bước riêng

Giả sử A, B, C là ba đỉnh của một tam giác. Đưa ba đỉnh tới A′, B′, C′ rồi nối lại cho một tam giác mới, nhưng điều ấy không có nghĩa từng điểm bên trong đã được biến đổi đúng như quy tắc K. Quy tắc có phép chia cho z; nội suy giữa các đỉnh cần được xét riêng khi muốn theo dõi sự tương ứng của cả mặt.

Chẳng hạn, lấy M là trung điểm đoạn AC trong bộ gốc. M có tọa độ (0; 0; 60). Biến đổi chính M bằng K cho M′ = (0; 0; 75), nên dấu của M′ có u bằng 0. Nếu thay vào đó lấy trung điểm của đoạn A′C′ mới, ta được (−3,75; 0; 75), có u bằng −5. Hai cách chọn điểm tương ứng đã cho hai vị trí khác nhau.

Ví dụ trung điểm không nói rằng tam giác mới không thể sử dụng được. Nó chỉ ra điều cần xác định khi có một dấu hoặc chi tiết nằm giữa các đỉnh: dấu ấy đi theo phép biến đổi của chính tọa độ cũ, hay đi theo một quy tắc nội suy trên tam giác mới? Chỉ nhìn ba đỉnh đã khớp sẽ chưa trả lời được câu hỏi về điểm nằm giữa.

Nếu hình gốc có một chấm màu ngay trung điểm cạnh, cần ghi rõ chấm ấy đại diện cho điểm nào sau biến đổi. Chuyển chấm theo tọa độ của nó và đặt lại chấm ở giữa cạnh mới là hai thao tác khác nhau, như các số vừa cho thấy. Với một đường hoa văn chạy qua nhiều mặt, câu hỏi tương tự xuất hiện ở từng đoạn. Bài kiểm điểm giúp phát hiện yêu cầu bổ sung ấy trước khi người xem lấy đường hoa văn làm bằng chứng rằng toàn bộ bề mặt đã được giữ nguyên.

Các dấu mốc cũng không mang thông tin về hướng pháp tuyến, màu hay nguồn sáng. Khi mặt đổi hình, quan hệ giữa mặt và ánh sáng có thể đổi theo. Giữ được ba vị trí ảnh vì thế chưa chứng minh một bản render có bóng, phản chiếu hoặc vân bề mặt giống bản ban đầu. Muốn kiểm những điều ấy phải có dữ liệu và phép so tương ứng.

Hình được thể hiện trong ảnh dưới còn có mép tấm, vùng nối và bề mặt lượn. Những phần này nhắc rằng một tạo hình có nhiều yêu cầu hơn bảng điểm. Ảnh không xác nhận cách thi công, và công thức của bài không quyết định độ bền, cách lắp hoặc khả năng tạo mẫu.

Các tấm tường có đường lượn nổi cùng những người đang thao tác bên cạnh thiết bị nâng.
Tấm nổi và góc nhìn nghiêng cho thấy hình được thể hiện còn có bề mặt, mép và chỗ nối. Phép giữ vị trí điểm chiếu không xác nhận cấu tạo, cách thi công hoặc bóng đổ của những phần ấy. Nguồn: mohinhdieukhac.vn.

Khi xem các bố cục phù điêu trong dự án, có thể đặt câu hỏi điểm nhìn nào được ưu tiên và những mốc nào cần theo dõi. Các lựa chọn ấy giúp xác định bài toán hình học trước khi bàn đến diện mạo cụ thể.

Thành quả của bài tập là một phép nén có điều kiện kiểm được: độ nhô giảm, dấu mốc giữ tại O, và phép thử ở E chỉ ra giới hạn. Biết rõ ba kết quả này giúp trao đổi ý tưởng chính xác hơn, đồng thời giữ riêng các câu hỏi về bề mặt và chế tác.

Để trao đổi ý tưởng model và bố cục phù điêu, xem trang liên hệ, gọi 0965536866 hoặc gửi email tới mohinhdieukhac@gmail.com.

Nhận xét

Bài đăng phổ biến từ blog này

Chọn vật liệu mô hình điêu khắc từ cách sử dụng

7 thông tin nên có trước khi xin báo giá mô hình điêu khắc

Điêu khắc âm thanh: đọc phần lòng và cổ qua một mô hình cộng hưởng giả định