Đặc điểm núi bậc thang


10

Tôi đang tìm cách tái tạo hiệu ứng địa hình theo thủ tục mà tôi đã tìm thấy trên một trang web danh mục / blog vài ngày trước.

Địa hình bậc thang

Trích dẫn trang web, sân thượng được tạo ra thông qua, "nhân [chiều cao cuối cùng] với một số giá trị giảm xóc trong một phạm vi chiều cao nhất định, để tạo ra các tính năng hẻm núi đẹp."

Tôi đã tự hỏi, liệu có ai có thể cung cấp một ví dụ hoặc quy trình kỹ thuật hơn để thực hiện việc này không? Trong tuần qua, tôi đã nghiên cứu và tìm hiểu rất nhiều về các phương pháp và thực tiễn về địa hình / kết cấu thủ tục nhưng tôi vẫn chưa tìm thấy bất cứ điều gì giải thích chi tiết về 'kẹp' là gì và tôi bắt đầu nản lòng.


Huh, điều đó thực sự gọn gàng. Tôi cũng không thể hiểu ý anh ta. Bạn đã thử gửi email cho anh chàng (có sẵn trong "liên hệ") chưa?
Draco18 không còn tin tưởng vào SE

FYI: Trong trích dẫn và nguồn của bạn, thuật ngữ này là 'giảm xóc', nhưng sau đó trong câu hỏi của bạn, bạn sử dụng 'kẹp' thay thế.
Pikalek

Câu trả lời:


11

Tôi không biết dự án của họ làm gì nhưng bạn có thể áp dụng chức năng định hình lại chiều cao. Dưới đây là một ví dụ lấy htừ 0,0 đến 1,0 và trả về chiều cao mới từ 0,0 đến 1,0:

function R(h) {
    var W = 0.4; // width of terracing bands
    var k = Math.floor(h / W);
    var f = (h - k*W) / W;
    var s = Math.min(2 * f, 1.0);
    return (k+s) * W;
}

Đây là một chức năng trông giống như thế này khi được vẽ - trục x là chiều cao ban đầu và trục y là chiều cao mới:

Chức năng định hình lại chiều cao

Tôi đã áp dụng nó cho mã của riêng tôi và nhận được điều này:

Đầu ra của hàm terraces

Bạn có thể đặt bất kỳ loại chức năng định hình lại nào, hoặc xâu chuỗi chúng lại với nhau, để có được hiệu ứng gọn gàng. Bạn có sân thượng khi có các phần bằng phẳng của đầu ra.


Tôi thề có một con đường trơn tru trong câu hỏi của người hỏi đi lên sân thượng, nhưng nhìn lại, tôi chắc chắn đó chỉ là ảo ảnh. Nhưng mắt tôi vẫn khăng khăng rằng không, có một sự thay đổi chiều cao ở đó (trung tâm của hình ảnh đến góc trên cùng / cạnh trên cùng bên trái). Nếu không có tăng, thì câu trả lời này là chính xác.
Draco18 không còn tin tưởng SE

1

Giảm xóc là thuật ngữ vật lý cho một ảnh hưởng trong hoặc trên một hệ thống dao động có tác dụng làm giảm, hạn chế hoặc ngăn chặn các dao động của nó.

Tôi nghi ngờ bài viết nguồn của bạn có thể có lỗi đánh máy & có nghĩa là kẹp , thường nói đến việc giới hạn một giá trị trong một phạm vi nhất định.

Để đạt được hiệu ứng hình ảnh, bạn có thể có được thứ gì đó tương tự bằng cách kẹp các dải nhiễu khi địa hình đang được xây dựng, nhưng giải pháp được đưa ra bởi @amitp phù hợp hơn với mô tả ban đầu & có thể dễ thực hiện & điều chỉnh hơn.

Một lựa chọn thứ ba có thể là sử dụng các kỹ thuật xói mòn. Đây là một cách để tạo ra một sự kết hợp giữa vách đá và bãi biển bằng cách thả một phần đất dốc. Đây là một cái khác có thể làm xói mòn các đỉnh thành cao nguyên .


0

Sau một rất kỳ nghỉ dài, bây giờ tôi hiểu làm thế nào hiệu quả đã đạt được, và nó vô cùng đơn giản. Có 4 phần cho hiệu ứng này:

  • Sơ đồ chiều cao ban đầu của địa hình
  • Xác định 'phạm vi' của sân thượng, với chiều cao thấp nhất của sân thượng là h1 và chiều cao cao nhất của sân thượng là h2
  • Một giá trị giảm xóc làm phẳng mặt đất trong phạm vi chiều cao của sân thượng
  • Một sơ đồ chiều cao thứ hai, phạm vi dài hơn để sửa đổi các giá trị h1 và h2, đó là cách các đường dốc liên tục giữa các sân thượng được hình thành (một sơ đồ chiều cao thứ ba có thể được sử dụng để tăng hoặc giảm h1 và h2 độc lập với nhau, tạo ra các sân thượng lớn hơn hoặc nhỏ hơn)

Đây là thủ tục để tạo hiệu ứng:

h1 = 1
h2 = 2
damp = .01

h = gen_noise(position)
hm = heightmod_noise(position)
if h1+hm <= initial_terrain_height =< h2+hm
  th = h * damp
elseif h2+hm < h
  th = h - (h2-h1) * damp
else
  th = h

(tất nhiên, là chiều cao của địa hình sau khi áp dụng hiệu ứng bậc thang)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.