जैसा कि GPU ड्राइवर विक्रेताओं आमतौर पर noiseX
GLSL में लागू करने के लिए परेशान नहीं करते हैं , मैं "ग्राफिक्स रैंडमाइजेशन स्विस आर्मी चाकू" उपयोगिता फ़ंक्शन सेट की तलाश कर रहा हूं , जो कि GPU shaders के भीतर उपयोग करने के लिए अधिमानतः अनुकूलित है। मैं GLSL को पसंद करता हूं, लेकिन कोई भी भाषा मेरे लिए कोड करेगी, मैं अपने आप को GLSL में अनुवाद करने के साथ ठीक हूं।
विशेष रूप से, मुझे उम्मीद है:
क) छद्म यादृच्छिक कार्य - एन-आयामी, [-1,1] पर समान वितरण या [0,1], एम-आयामी बीज से गणना (आदर्श रूप से किसी भी मूल्य की जा रही है, लेकिन मैं बीज संयमित होने के साथ ठीक हूं , कहते हैं, समान परिणाम वितरण के लिए 0..1)। कुछ इस तरह:
float random (T seed);
vec2 random2 (T seed);
vec3 random3 (T seed);
vec4 random4 (T seed);
// T being either float, vec2, vec3, vec4 - ideally.
ख) पेरलिन शोर की तरह लगातार शोर - फिर से, एन-आयामी, + - समान वितरण, मूल्यों के विवश सेट के साथ और, ठीक है, अच्छा लग रहा है (पेरलिन के स्तर की तरह उपस्थिति को कॉन्फ़िगर करने के लिए कुछ विकल्प उपयोगी भी हो सकते हैं)। मुझे उम्मीद है कि हस्ताक्षर जैसे:
float noise (T coord, TT seed);
vec2 noise2 (T coord, TT seed);
// ...
मैं यादृच्छिक संख्या पीढ़ी के सिद्धांत में बहुत ज्यादा नहीं हूं, इसलिए मैं सबसे उत्सुकता से एक पूर्व-निर्मित समाधान के लिए जाऊंगा , लेकिन मैं "यहां एक बहुत अच्छा, कुशल 1D रैंड () जैसे उत्तर की सराहना करूंगा , और मुझे समझाने दूंगा आप इसके ऊपर एक अच्छा एन-आयामी रैंड () कैसे करें ... " ।
vec2 co
? क्या यह सीमा है? बीज?