Cách đây vài năm, tôi đã tình cờ nghe được một kỹ thuật mang đến cho người dùng ảo giác về một hành tinh quay bằng cách sử dụng kết cấu 2D. Cho rằng người dùng không thể thay đổi vị trí hoặc khung nhìn của nó.
Tên của kỹ thuật này là gì?
Cách đây vài năm, tôi đã tình cờ nghe được một kỹ thuật mang đến cho người dùng ảo giác về một hành tinh quay bằng cách sử dụng kết cấu 2D. Cho rằng người dùng không thể thay đổi vị trí hoặc khung nhìn của nó.
Tên của kỹ thuật này là gì?
Câu trả lời:
OK tôi nghĩ rằng tôi có đại diện bây giờ. Nội dung của bài viết trước với hình ảnh được nhúng. Đây có phải là hiệu ứng hành tinh xoay mà bạn đang tìm kiếm? Nó chỉ đơn giản là một hình ảnh 2D cuộn được xem qua một "lỗ" bán trong suốt trong trường sao.
Tôi kết hợp một gif hoạt hình nhỏ nhanh chóng về hiệu ứng sẽ như thế nào. Rõ ràng nó có thể hoạt hình mượt mà hơn rất nhiều - Tôi đã thay đổi bề mặt hành tinh thêm 4 pixel mỗi khung hình. Nó cũng không được thiết lập để bọc hình ảnh nên có một trục trặc ở cuối vòng lặp.
hành tinh http://www.perludus.com/orbit.gif
Tôi đã làm tất cả điều này trong Photoshop, nhưng khái niệm này sẽ hoạt động trong môi trường kết xuất 2D cho phép bạn thực hiện trong suốt alpha, v.v ... Dưới đây là một loạt các ảnh chụp màn hình cho thấy quá trình ...
Để làm động bề mặt hành tinh của bạn, chỉ cần di chuyển kết cấu bề mặt hành tinh bên dưới. Bạn sẽ phải khéo léo thay đổi kết cấu khi nó chạm tới rìa để có được một vòng quay liền mạch và vô tận.
Hy vọng điều này sẽ giúp và là hiệu quả bạn đang tìm kiếm!
PS Xem bài viết này về các nghệ sĩ với một cách khá mới lạ để tạo kết cấu hành tinh - khiến tôi nghĩ đến câu trả lời này :) http://www.behance.net/gallery/Pan-Planets/9557465
Tôi sẽ đoán ý của bạn là gì, và chỉ đưa ra một ý tưởng ngoài kia, nhưng chắc chắn đó sẽ không phải là cách 'nổi tiếng' để thực hiện nó.
tất cả trong 2D
lấy 2 họa tiết. Một khối đất của bạn, những đám mây khác của bạn. các đám mây nên có một lớp alpha phù hợp để bạn có thể 'nhìn thấy chúng'.
làm cho kết cấu có thể điều chỉnh được, đó là chúng liền mạch. có những chương trình giúp bạn thực hiện những điều này hoặc hướng dẫn trong photoshop mà bạn có thể làm theo.
sau đó cuối cùng bạn tạo ra một mặt nạ stprint chỉ là một vòng tròn, do đó bạn có hiệu lực nhìn qua một lỗ tròn ở kết cấu vuông của bạn, do đó che đi các góc.
bây giờ bạn làm động các ma trận kết cấu của đất và kết cấu đám mây để làm cho chúng di chuyển. làm cho chúng di chuyển theo các hướng và tốc độ khác nhau và nó sẽ xuất hiện để quay. tất cả phụ thuộc vào cách bạn thực hiện kết cấu của bạn.
Tôi nghĩ rằng bài viết này mô tả các kỹ thuật. (Đó là tiếng Nga, vì vậy tôi đăng liên kết dịch.)
https://translate.google.com/uss
Tôi đã thực hiện nó ở đây. http://github.com/meric/renderplanet
Về cơ bản, bạn chụp ảnh mã hóa hình chiếu chính tả ( http://mathworld.wolfram.com/OrthographicProjection.html ) và bọc hành tinh và kết cấu đám mây của bạn xung quanh nó bằng cách sử dụng trình đổ bóng. Bù đắp kết cấu hành tinh theo dt để làm cho nó xoay. Sử dụng một hình ảnh mờ đã chuẩn bị cho vòng khí quyển và bóng tối, hoặc tạo ra nó bằng cách vẽ các vòng cung mờ và một số thử nghiệm với bóng đổ cho bóng tối.
Đây là hình ảnh:
Đối với mỗi pixel trong vòng tròn, Red + Green/255
tọa độ X được chuẩn hóa của kết cấu hành tinh / đám mây để tra cứu và Blue + Alpha/255
là tọa độ Y được chuẩn hóa.
Đây là kết quả:
Các kết cấu hành tinh và đám mây nên ở dạng chiếu tương đương.
Câu hỏi của bạn không rõ ràng về các hạn chế đối với bối cảnh bạn đang làm việc. Phần lớn các kết cấu trong kết xuất 3D là 2D. Vì vậy, nếu bạn chỉ hiển thị một hình cầu 3D với kết cấu bề mặt 2D được ánh xạ xung quanh nó, đây thực sự không phải là vấn đề. Nếu bạn không thể sử dụng kết xuất 3D, thì bạn phải nói chính xác những gì bạn có thể sử dụng.
Vấn đề cơ bản là bạn phải kết xuất một kết cấu phẳng trên bề mặt của một hình cầu, mà bạn có được miễn phí với kết xuất 3D. Khi hành tinh quay, các phần có thể nhìn thấy của bề mặt hành tinh được sinh động theo phương pháp phi tuyến tính (các phần xích đạo của kết cấu di chuyển nhanh hơn các cực). Vì vậy, tôi nghĩ rằng bạn phải tự làm biến dạng hình ảnh khi bạn ánh xạ nó qua đĩa hoặc bạn làm như VirtualVoid đề xuất và chỉ cần có nhiều hình ảnh mà bạn thay đổi theo thời gian.
Sẽ rất kinh khủng khi thực hiện, nhưng nếu bạn có thể kết xuất họa tiết, pixel theo pixel, thì về cơ bản bạn có thể thực hiện các phép tính rasterisation cho từng dòng của hình cầu một cách riêng biệt. Giả sử rằng kết cấu bản đồ bề mặt của bạn được làm phẳng, do đó tại xích đạo có 512px hình ảnh. Chúng ta cũng giả sử đĩa hiển thị của bạn rộng 256 px. Bây giờ hãy nghĩ về mỗi dòng của đĩa được kết xuất như một cửa sổ trượt trên kết cấu bề mặt. Trên đường xích đạo, cửa sổ là 50% chiều rộng kết cấu và bạn chỉ cần sao chép từng pixel 256px vào pixel tương đương trên đĩa. Dòng tiếp theo trên đĩa sẽ nhỏ hơn 256 px, nhưng do bản đồ bề mặt bị biến dạng, vẫn còn 256px dữ liệu bản đồ bề mặt đầu vào. Vì vậy, sau đó bạn lấy mẫu dữ liệu bản đồ bề mặt đầu vào và hiển thị pixel kết quả. Đối với toán dễ, hãy ' s giả sử rằng 1/3 đường giữa xích đạo và cực rộng 128px trong đĩa đầu ra. Vì vậy, mỗi 128px sẽ là trung bình của 2 pixel lân cận. Khi bạn xuống cực, bạn sẽ lấy trung bình tất cả 256px thành một vài pixel đầu ra.
Bạn cũng có thể làm theo cách khác và có các dòng trong kết cấu nguồn có độ dài khác nhau. Vì vậy, trong khi dòng chứa dữ liệu nguồn có 512px trong đó, dòng 1/3 trở xuống chỉ có 256px và dòng ở phía dưới chỉ có một vài pixel. Nhưng mỗi dòng gấp đôi chiều rộng của đĩa tại tọa độ y tương đương. Mặc dù vậy, loại kết cấu đó sẽ là hoàn toàn khủng khiếp khi phải tạo ra. Và có lẽ sẽ phải chịu đựng các vấn đề răng cưa khủng khiếp.
Trong cả hai trường hợp đó, hoạt hình của bạn chỉ đơn giản là tăng pixel bắt đầu x trong kết cấu đầu vào và bao quanh đến điểm bắt đầu của dòng kết cấu đầu vào.
Tôi càng viết về điều này bây giờ, tôi càng tin rằng đó là một ý tưởng khủng khiếp, rằng bạn chỉ thực hiện nếu bạn thực sự không có lựa chọn nào khác. Và bạn sẽ phải ở trong một tình huống rất bất thường để không có lựa chọn nào khác.
Tôi không tin rằng tôi đã nghe về bất kỳ giải pháp nào cho vấn đề (khá mơ hồ) này như là một kỹ thuật được đặt tên cụ thể.
Sprites. Nghe có vẻ như những gì bạn mô tả là một sprite 2D trong công cụ trò chơi 3D để hiển thị với giá rẻ (Nintendo64 đã làm điều này ở mọi nơi, cũng như nhiều công cụ 3d đầu tiên).
Nếu bạn muốn kết xuất một hành tinh đang quay, bạn chỉ cần hiển thị một sprite 2D được tạo hình động dựa trên một tấm sprite là một hành tinh xoay được kết xuất trước. Giống như, một phim hoạt hình .GIF chẳng hạn. Vấn đề là nó sẽ được kết xuất trước, như bạn đã nói, điều này chỉ hoạt động nếu người dùng không được phép thao tác với góc nhìn.
Đó có thể chỉ là một hình ảnh động đơn giản, sử dụng một kết cấu với nhiều khung hình.