F***ing, f***ing Mediafire. Someone donated me some upload space so I'll start using that I think but for the moment here's another upload for Mediafire to corrupt with its s****y buggy advert bulls***. http://www.mediafire.com/?wv9nyw2dw6s1qou
F***ing, f***ing Mediafire. Someone donated me some upload space so I'll start using that I think but for the moment here's another upload for Mediafire to corrupt with its s****y buggy advert bulls***. http://www.mediafire.com/?wv9nyw2dw6s1qou
F***ing, f***ing Mediafire. Someone donated me some upload space so I'll start using that I think but for the moment here's another upload for Mediafire to corrupt with its s****y buggy advert bulls***. http://www.mediafire.com/?wv9nyw2dw6s1qou
This is IMO the best mod for Minecraft. I know I've said it before, but it's worth repeating :smile.gif:.
As I understand it, it works by sending rays into the environment and checking if a ray hits an object or not.
What does BetterLight do to check the brightness of this ray? Is it a simple on/off thing with the sky and the blocks, does it get the light value from the blocks, or something else? I did notice that it seems to work even inside where the sky is not visible, which is a bit unusual for most AO algorithms.
Rollback Post to RevisionRollBack
When all is said and done, Will you have said more than you have done?
This is IMO the best mod for Minecraft. I know I've said it before, but it's worth repeating :smile.gif:.
As I understand it, it works by sending rays into the environment and checking if a ray hits an object or not.
What does BetterLight do to check the brightness of this ray? Is it a simple on/off thing with the sky and the blocks, does it get the light value from the blocks, or something else? I did notice that it seems to work even inside where the sky is not visible, which is a bit unusual for most AO algorithms.
Heh, it's not nearly that complex.
The Ambient occlusion calculation you are assuming is necessary when you have unknown, complex shapes.
Since there are no complex 3d shapes, only predictables cubes the AO element of the mod simply darkens corners in a preset manner.
In short, wherever you have blocks creating a corner it darkens that corner with a set gradient. It doesn't actually calculate any real AO.
That combined with smoothing the light values calculated already by the engine creates the final look.
As far as I understand the majority of the calculations are still done by Notch's light code, which simply takes where light hits as a set value, and has it decay in a linear manner for every block that is not exposed to direct light, until zero.
There is no ray tracing of any kind going on here.
I just noticed that the light smoothing is not complete:
The shading on water is currently not smoothed. Are you planning on adding this in the future, or is there a limitation preventing you from doing this? I couldn't find anything by searching this topic since the term 'water' is considered to be 'too common', so forgive me if this has been addressed before.
Notch's code (vastly simplifying): How light is this block?
Paint all the corners of the block that lightness.
My code (vastly simplifying): How light is this block and all the surrounding blocks?
Paint each corner of the block the average of the four blocks that surround that corner.
There's more to it, but that's the main better light code. AO happens because the light level of a solid block is 0 so it darkens those corners. The rest is plumbing.
Hey,I know this'd never work but... Could it work on classic too?
It *could* but I'm not going to do it.... a lot of effort (decompiling ANOTHER version of the code, with a lot of difference to the current tree) for little gain (not many people using it)
I just noticed that the light smoothing is not complete:
The shading on water is currently not smoothed. Are you planning on adding this in the future, or is there a limitation preventing you from doing this? I couldn't find anything by searching this topic since the term 'water' is considered to be 'too common', so forgive me if this has been addressed before.
I want to fix it. I think it happens because water blocks have their own renderer so it's just a case of patching another function. I *think*.
I just noticed that the light smoothing is not complete:
(image)
The shading on water is currently not smoothed. Are you planning on adding this in the future, or is there a limitation preventing you from doing this? I couldn't find anything by searching this topic since the term 'water' is considered to be 'too common', so forgive me if this has been addressed before.
I want to fix it. I think it happens because water blocks have their own renderer so it's just a case of patching another function. I *think*.
Hmm, does this mean if you found that function that you could also modify things like the water's transparency depending on if it's near the edge or in a larger body of water?
I just noticed that the light smoothing is not complete:
(image)
The shading on water is currently not smoothed. Are you planning on adding this in the future, or is there a limitation preventing you from doing this? I couldn't find anything by searching this topic since the term 'water' is considered to be 'too common', so forgive me if this has been addressed before.
I want to fix it. I think it happens because water blocks have their own renderer so it's just a case of patching another function. I *think*.
Hmm, does this mean if you found that function that you could also modify things like the water's transparency depending on if it's near the edge or in a larger body of water?
Probably! Should I try?
Edit: ooh, that looks like a fun function. OK. Fix the blocky light on water first, play with transparancy later.
Hmm, does this mean if you found that function that you could also modify things like the water's transparency depending on if it's near the edge or in a larger body of water?
Probably! Should I try?
Yes please =D
Currently the water always seems too dark. not very inviting for awesome underwater buildings, since you can barely see them. might be cool if we could mess with this =)
hey everyone, im not sure if this is completely dead, but i need some help. Im running windows 7 64 bit. I can run the Patcher and everything apears to patch fine but when i try to runthe java file in the .minecraft folder it gives a warning about "corrupt file". When i run the minecraft.exe on my dekstop in runs fine but with no apparent difference. what do?
(Mac-) I was lookin' around for problems like mine, but couldn't find someone that posted this....
(I'M ON A Mac)
When I try and open 'MrMPatcher.jar', located in the minecraft folder, after a good 5 seconds of nothing happening, a message pops up saying....
The Java JAR file "MrMPatcher.jar" could not be launched.
Check the sonsole for possible error messages.
And so I try to open it up using Terminal, and type java -jar MrMPatcher
But it says....
Unable to access jarfile MrMPatcher.jar
Any suggestions how to work this out? Thank you.
EDIT: I don't know if this matters, but here is the console at the time of opening the MrMPatcher.jar 1/9/11 6:41:52 PM [0x0-0x4f04f].com.apple.JarLauncher[1988] SystemFlippers: didn't consume all data for long ID 0 (pBase = 0x10013e080, p = 0x10013e084, pEnd = 0x10013e088)
1/9/11 6:41:52 PM [0x0-0x4f04f].com.apple.JarLauncher[1988] SystemFlippers: didn't consume all data for long ID 0 (pBase = 0x10013b980, p = 0x10013b984, pEnd = 0x10013b988)
1/9/11 6:41:52 PM [0x0-0x4f04f].com.apple.JarLauncher[1988] Exception in thread "main"
1/9/11 6:41:52 PM [0x0-0x4f04f].com.apple.JarLauncher[1988] java.lang.UnsupportedClassVersionError: Bad version number in .class file
1/9/11 6:41:52 PM [0x0-0x4f04f].com.apple.JarLauncher[1988] at java.lang.ClassLoader.defineClass1(Native Method)
1/9/11 6:41:52 PM [0x0-0x4f04f].com.apple.JarLauncher[1988] at java.lang.ClassLoader.defineClass(ClassLoader.java:676)
1/9/11 6:41:52 PM [0x0-0x4f04f].com.apple.JarLauncher[1988] at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
1/9/11 6:41:52 PM [0x0-0x4f04f].com.apple.JarLauncher[1988] at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
1/9/11 6:41:52 PM [0x0-0x4f04f].com.apple.JarLauncher[1988] at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
1/9/11 6:41:52 PM [0x0-0x4f04f].com.apple.JarLauncher[1988] at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
1/9/11 6:41:52 PM [0x0-0x4f04f].com.apple.JarLauncher[1988] at java.security.AccessController.doPrivileged(Native Method)
1/9/11 6:41:52 PM [0x0-0x4f04f].com.apple.JarLauncher[1988] at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
1/9/11 6:41:52 PM [0x0-0x4f04f].com.apple.JarLauncher[1988] at java.lang.ClassLoader.loadClass(ClassLoader.java:317)
1/9/11 6:41:52 PM [0x0-0x4f04f].com.apple.JarLauncher[1988] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280)
1/9/11 6:41:52 PM [0x0-0x4f04f].com.apple.JarLauncher[1988] at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
1/9/11 6:41:52 PM [0x0-0x4f04f].com.apple.JarLauncher[1988] at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:375)
Since there are no complex 3d shapes, only predictables cubes the AO element of the mod simply darkens corners in a preset manner.
That's one way it could work, but I'd like to hear a description of the algorithm from the author. Which he gave.
In any case, here's how AO normally works:
Ambient occlusion is most often calculated by casting rays in every direction from the surface. Rays which reach the background or “sky” increase the brightness of the surface, whereas a ray which hits any other object contributes no illumination. As a result, points surrounded by a large amount of geometry are rendered dark, whereas points with little geometry on the visible hemisphere appear light.
So I guess I am a tad disappointed that it's not really a "proper" AO algorithm, but I suppose it can be done very fast.
Quote from MrMessiah »
Quote from Jo_shadow »
Hmm, does this mean if you found that function that you could also modify things like the water's transparency depending on if it's near the edge or in a larger body of water?
Probably! Should I try?
Edit: ooh, that looks like a fun function. OK. Fix the blocky light on water first, play with transparancy later.
Humm, I think I've seen stuff like this before (pulls out physics book). Here's some fun facts that may help:
[*:1zf7bydx]When you are directly above water, the intensity of reflected rays is 0.0201*(original intensity). Or, to put it another way, transparency is 1-0.0201=0.980 (you have 98% visibility).
[*:1zf7bydx]The critical angle for total internal reflection (light reflected underneath the water) is 48.8 degrees. Beyond this point, somebody above the water can't see what's under the water (the light under the water can never make it above the surface), therefore after that point, the water should be completely opaque (since you can't model reflections) if the player is above the water.
[*:1zf7bydx]I've found a website that should help with determining reflectivity (or on this case, opacity since you can't model reflections). Just use 1.33 (IOR for water) instead of 1.5 (IOR of glass).
@E_man: Try re-downloading the file, sounds like you got a bad download.
Rollback Post to RevisionRollBack
When all is said and done, Will you have said more than you have done?
I am running into an error with the Patcher. I scrolled the boards and it looked like someone else had the same error. You suggested that that might have an older patcher. i have DL the MRMMods 1.7 and am getting this error.
Patching class: bi (bi.class)
javassist.CannotCompileException: [source error] a(float,float,float) not found in java.lang.String
at javassist.CtNewMethod.make(CtNewMethod.java:78)
at javassist.CtNewMethod.make(CtNewMethod.java:44)
at Patches$3.visitClassPre(Patches.java:113)
at PatchSet.visitClassPre(PatchSet.java:43)
at MCPatcher.applyPatches(MCPatcher.java:258)
at MCPatcher.applyPatch(MCPatcher.java:152)
at MainForm$3$1.run(MainForm.java:90)
at MainForm.run(MainForm.java:230)
at java.lang.Thread.run(Unknown Source)
Caused by: compile error: a(float,float,float) not found in java.lang.String
at javassist.compiler.TypeChecker.atMethodCallCore(TypeChecker.java:716)
at javassist.compiler.TypeChecker.atCallExpr(TypeChecker.java:681)
at javassist.compiler.JvstTypeChecker.atCallExpr(JvstTypeChecker.java:156)
at javassist.compiler.ast.CallExpr.accept(CallExpr.java:45)
at javassist.compiler.CodeGen.doTypeCheck(CodeGen.java:241)
at javassist.compiler.CodeGen.atStmnt(CodeGen.java:329)
at javassist.compiler.ast.Stmnt.accept(Stmnt.java:49)
at javassist.compiler.CodeGen.atStmnt(CodeGen.java:350)
at javassist.compiler.ast.Stmnt.accept(Stmnt.java:49)
at javassist.compiler.CodeGen.atIfStmnt(CodeGen.java:390)
at javassist.compiler.CodeGen.atStmnt(CodeGen.java:354)
at javassist.compiler.ast.Stmnt.accept(Stmnt.java:49)
at javassist.compiler.CodeGen.atStmnt(CodeGen.java:350)
at javassist.compiler.ast.Stmnt.accept(Stmnt.java:49)
at javassist.compiler.CodeGen.atMethodBody(CodeGen.java:291)
at javassist.compiler.CodeGen.atMethodDecl(CodeGen.java:273)
at javassist.compiler.ast.MethodDecl.accept(MethodDecl.java:43)
at javassist.compiler.Javac.compileMethod(Javac.java:168)
at javassist.compiler.Javac.compile(Javac.java:94)
at javassist.CtNewMethod.make(CtNewMethod.java:73)
... 8 more
it stops at %6
I am running Xp with latest Java 6
Minecraft Beta 1.1_02
I have no other mods installed and this error is from clean install
Interestingly if I don't check any boxes it seems to work( if you need I can post success messages)
it changes the size of minecraft.jar from 1,104kb to 1,077kb
EDIT: downloaded from the links in a few posts up much better success(link on page one points to same zip must have different contents.
Might be having another issue though i'll do some isolation and try to determine if it one of the mods or minecraft itself(screen goes black and nothing works, kill game and restart and i end up inside a block i just dug out)
Thanks, this one works fine.
[*:eoyw3n4t]Uploaded.to
[*:eoyw3n4t]Share-Online.biz
[*:eoyw3n4t]Netload.in
Animated Comparison:
Side-by-Side Comparison:
This is really an awesome mod, and a big improvement over the original AO mod.
Oooh, I like this. This am clever.
As I understand it, it works by sending rays into the environment and checking if a ray hits an object or not.
What does BetterLight do to check the brightness of this ray? Is it a simple on/off thing with the sky and the blocks, does it get the light value from the blocks, or something else? I did notice that it seems to work even inside where the sky is not visible, which is a bit unusual for most AO algorithms.
Heh, it's not nearly that complex.
The Ambient occlusion calculation you are assuming is necessary when you have unknown, complex shapes.
Since there are no complex 3d shapes, only predictables cubes the AO element of the mod simply darkens corners in a preset manner.
In short, wherever you have blocks creating a corner it darkens that corner with a set gradient. It doesn't actually calculate any real AO.
That combined with smoothing the light values calculated already by the engine creates the final look.
As far as I understand the majority of the calculations are still done by Notch's light code, which simply takes where light hits as a set value, and has it decay in a linear manner for every block that is not exposed to direct light, until zero.
There is no ray tracing of any kind going on here.
The shading on water is currently not smoothed. Are you planning on adding this in the future, or is there a limitation preventing you from doing this? I couldn't find anything by searching this topic since the term 'water' is considered to be 'too common', so forgive me if this has been addressed before.
Notch's code (vastly simplifying): How light is this block?
Paint all the corners of the block that lightness.
My code (vastly simplifying): How light is this block and all the surrounding blocks?
Paint each corner of the block the average of the four blocks that surround that corner.
There's more to it, but that's the main better light code. AO happens because the light level of a solid block is 0 so it darkens those corners. The rest is plumbing.
It *could* but I'm not going to do it.... a lot of effort (decompiling ANOTHER version of the code, with a lot of difference to the current tree) for little gain (not many people using it)
I want to fix it. I think it happens because water blocks have their own renderer so it's just a case of patching another function. I *think*.
Hmm, does this mean if you found that function that you could also modify things like the water's transparency depending on if it's near the edge or in a larger body of water?
Probably! Should I try?
Edit: ooh, that looks like a fun function. OK. Fix the blocky light on water first, play with transparancy later.
Yes please =D
Currently the water always seems too dark. not very inviting for awesome underwater buildings, since you can barely see them. might be cool if we could mess with this =)
thanks in advance for any help you can give :3
(I'M ON A Mac)
When I try and open 'MrMPatcher.jar', located in the minecraft folder, after a good 5 seconds of nothing happening, a message pops up saying....
The Java JAR file "MrMPatcher.jar" could not be launched.
Check the sonsole for possible error messages.
And so I try to open it up using Terminal, and type java -jar MrMPatcher
But it says....
Unable to access jarfile MrMPatcher.jar
Any suggestions how to work this out? Thank you.
EDIT: I don't know if this matters, but here is the console at the time of opening the MrMPatcher.jar
1/9/11 6:41:52 PM [0x0-0x4f04f].com.apple.JarLauncher[1988] SystemFlippers: didn't consume all data for long ID 0 (pBase = 0x10013e080, p = 0x10013e084, pEnd = 0x10013e088)
1/9/11 6:41:52 PM [0x0-0x4f04f].com.apple.JarLauncher[1988] SystemFlippers: didn't consume all data for long ID 0 (pBase = 0x10013b980, p = 0x10013b984, pEnd = 0x10013b988)
1/9/11 6:41:52 PM [0x0-0x4f04f].com.apple.JarLauncher[1988] Exception in thread "main"
1/9/11 6:41:52 PM [0x0-0x4f04f].com.apple.JarLauncher[1988] java.lang.UnsupportedClassVersionError: Bad version number in .class file
1/9/11 6:41:52 PM [0x0-0x4f04f].com.apple.JarLauncher[1988] at java.lang.ClassLoader.defineClass1(Native Method)
1/9/11 6:41:52 PM [0x0-0x4f04f].com.apple.JarLauncher[1988] at java.lang.ClassLoader.defineClass(ClassLoader.java:676)
1/9/11 6:41:52 PM [0x0-0x4f04f].com.apple.JarLauncher[1988] at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
1/9/11 6:41:52 PM [0x0-0x4f04f].com.apple.JarLauncher[1988] at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
1/9/11 6:41:52 PM [0x0-0x4f04f].com.apple.JarLauncher[1988] at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
1/9/11 6:41:52 PM [0x0-0x4f04f].com.apple.JarLauncher[1988] at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
1/9/11 6:41:52 PM [0x0-0x4f04f].com.apple.JarLauncher[1988] at java.security.AccessController.doPrivileged(Native Method)
1/9/11 6:41:52 PM [0x0-0x4f04f].com.apple.JarLauncher[1988] at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
1/9/11 6:41:52 PM [0x0-0x4f04f].com.apple.JarLauncher[1988] at java.lang.ClassLoader.loadClass(ClassLoader.java:317)
1/9/11 6:41:52 PM [0x0-0x4f04f].com.apple.JarLauncher[1988] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280)
1/9/11 6:41:52 PM [0x0-0x4f04f].com.apple.JarLauncher[1988] at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
1/9/11 6:41:52 PM [0x0-0x4f04f].com.apple.JarLauncher[1988] at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:375)
That's one way it could work, but I'd like to hear a description of the algorithm from the author. Which he gave.
In any case, here's how AO normally works:
So I guess I am a tad disappointed that it's not really a "proper" AO algorithm, but I suppose it can be done very fast.
Humm, I think I've seen stuff like this before (pulls out physics book). Here's some fun facts that may help:
[*:1zf7bydx]When you are directly above water, the intensity of reflected rays is 0.0201*(original intensity). Or, to put it another way, transparency is 1-0.0201=0.980 (you have 98% visibility).
[*:1zf7bydx]The critical angle for total internal reflection (light reflected underneath the water) is 48.8 degrees. Beyond this point, somebody above the water can't see what's under the water (the light under the water can never make it above the surface), therefore after that point, the water should be completely opaque (since you can't model reflections) if the player is above the water.
[*:1zf7bydx]I've found a website that should help with determining reflectivity (or on this case, opacity since you can't model reflections). Just use 1.33 (IOR for water) instead of 1.5 (IOR of glass).
@E_man: Try re-downloading the file, sounds like you got a bad download.
it stops at %6
I am running Xp with latest Java 6
Minecraft Beta 1.1_02
I have no other mods installed and this error is from clean install
Interestingly if I don't check any boxes it seems to work( if you need I can post success messages)
it changes the size of minecraft.jar from 1,104kb to 1,077kb
success msgs
Suggestions?
Thanks...Mod looks great. Thanks for the work
EDIT: downloaded from the links in a few posts up much better success(link on page one points to same zip must have different contents.
Might be having another issue though i'll do some isolation and try to determine if it one of the mods or minecraft itself(screen goes black and nothing works, kill game and restart and i end up inside a block i just dug out)
MC 1.8.9
Forge 11.15.0.1688
Optifine 1.8.9 HD U H1
Villager Info 1.8-2.1
Xaero Minimap 1.7.9
Zyin HUD 1.4.8