Tôi đang cố gắng tạo các đám mây nhiễu Perlin siêu đơn giản trong trình đổ bóng phân đoạn, sử dụng chức năng Noise tìm thấy here.Làm mịn tiếng ồn pert quãng tám thấp
Ở quãng tám thấp, đầu ra của tôi là, vì muốn có từ tốt hơn, 'blobby'. Tôi chỉ đơn giản là muốn mịn ra những khu vực blobby và có tiếng ồn trơn tru nhưng có nó chi tiết hơn một chút so với chỉ một quãng tám.
Fragment Shader:
#ifdef GL_ES
precision mediump float;
#endif
uniform float time;
uniform vec2 resolution;
// Noise related functions go here ..
float surface3 (vec3 coord) {
float frequency = 4.0;
float n = 0.0;
n += 1.0 * abs(cnoise(coord * frequency));
n += 0.5 * abs(cnoise(coord * frequency * 2.0));
n += 0.25 * abs(cnoise(coord * frequency * 4.0));
return n;
}
void main(void) {
vec2 position = gl_FragCoord.xy/resolution.xy;
float n = surface3(vec3(position, time * 0.1));
gl_FragColor = vec4(n, n, n, 1.0);
}
Sống dụ:
http://glsl.heroku.com/e#1413.0
trái là những gì tôi có vào lúc này. Làm cách nào để tôi có thể đạt được nội dung nào đó phù hợp hơn với hình ảnh phù hợp?
Cảm ơn Ilmari. Tôi đã xem xét giải pháp của bạn và chỉ sử dụng một quãng tám tiếng ồn, nhưng kết quả vẫn dường như xuất hiện khá blobby. Tôi cũng không thích sự tương phản cao hơn giữa khu vực màu đen và trắng. Sự hiểu biết của tôi là bổ sung thêm quãng tám tiếng ồn thêm chi tiết nhưng cũng làm giảm độ tương phản trong kết quả (dựa trên http://libnoise.sourceforge.net/tutorials/tutorial4.html#octaves) mà chính xác là những gì tôi theo sau. Tôi có hợp lý không? –
Ahh, được rồi, tôi hiểu ý bạn là gì. Đã chỉnh sửa câu trả lời. –
Đáng yêu, điều đó đã thực hiện mẹo - cảm ơn! –