
Welcome to the new Bugs forum!
With the new release, we added a lot of new features. With new features come new bugs.
I have found one bug in the Noise renderer:
It is very apparent when you bring the seed to 5424. There is a sort of vertical banding!
Another bug
As I play with this software another bug presents itself.
There is a sort of Moire effect with the Glow operator's Normals!
I especially like the Lerp feature, however.
Random function
FxGen should use a better random function.
float IntegerNoise (int n) {
n = (n >> 13) ^ n;
int nn = (n * (n * n * 60493 + 19990303) + 1376312589) & 0x7fffffff;
return 1.0 - ((float)nn / 1073741824.0);
}
( source: libnoise )
Yup
I agree. At least the Noise op shows that the current isn't that good really. However, all existing projects will change appearance if the random function of Cloud etc changes. Will have to see with Johann if that's ok.
Also, the current one is a lot simpler and thereby probably quite a lot faster than the one you propose. Maybe it's possible to find a simpler that's still good enough?
random
Creating a fast random number generator function is a very hard task.
One year ago I tried to do it myself without success because my math background was insufficient.
Perhaps you can use a cache to store random data.
n = (n >> 13) ^ n;
n = (n >> 13) ^ n;
Hmmm, maybe I don't understand the line because I have history with assemblers...But should't there be rotations?
With this kind of operation you will definitely see repetitions with 2^n sized textures and 2^n seeds. Even 2^n*m seeds. Seed=5120 is really bad sample. Others are 2048, 6400, 3200, 32, 256, 512. Maybe this is one of those cases where simple is better. Right now I can only think of:
n=((float)n*pi) rcr (n mod MACHINE_WORD_LEN)
as a one-liner, but I guess it has its faults. Seed=0 as one and maybe 683565275 (683565276) or other seed=2^m/pi cases. And how do you do "Rotate through Carry Right" anyway in C?
EDIT: I found proof to my concerns:
function IntNoise(32-bit integer: x)
x = (x<<13) ^ x;
return ( 1.0 - ( (x * (x * x * 15731 + 789221) + 1376312589) & 7fffffff) / 1073741824.0);
end IntNoise function
Did someone misinterpret the function? The article where I found it, explained that you would need multiple copies of this algorithm and change the primes, but maybe its already done - I haven't looked inside the code yet.
Madis
Some usability bugs
This goes to anyone with enough time to polish this project. :) Thank you!
When the program starts, it should focus the window. I don't know how its even possible, but now its out of focus and I can't alt-tab to it. Maybe its only my problem because I hate mice and I use Alt-F to open the menu :P
Secondly I would love to see some meaningful error messages when projects cannot be read and there should be only a few messages for different types like file-access, format-recognition, etc. which summarize them. Now there's like 10 messages about the same error in different places.
Right now the drag&drop is allowed, but not processed.
Another problem is that I cannot move the bricks in the lower-right (only by 'playing' with zoom). Simple right/left/up/down or LMB drag would do the trick.
Finally, program shouldn't crash after these messages.
That's all - for now :)
Madis