Hello everybody,
This mod adds support for HD textures and a lot of options for better looks and performance.
Doubling the FPS is common.
You can follow the OptiFine development here: reddit.com/r/OptiFine, [email protected] or http://optifog.blogspot.com.
Resources: translations, documentation, issue tracker.
Get the Magic Launcher for easy mod installation, compatibility checking and more.
Donate to OptiFine and receive the OptiFine cape as a sign of your awesomeness.
The cape is visible to everyone using OptiFine. Thank you for being awsome.
Download OptiFine
Get all OptiFine versions here: optifine.net
Features
- FPS boost (examples) - doubling the FPS is common - decreases lag spikes and smooths gameplay
- Support for HD Textures (info) - HD textures and HD fonts (MCPatcher not needed) - custom terrain and item textures - animated terrain and item textures - custom HD Font character widths - custom colors - custom block color palettes - custom lighting - unlimited texture size
- Support for Shaders (info) - based on the Shaders Mod by Karyonix
- Dynamic Lights - allows handheld and dropped light emitting items to illuminate the objects around them. It is similar, but not related to the Dynamic Lights mod
- Variable Render Distance (example) - from Tiny to Extreme (2 x Far) in 16m steps - sun, moon and stars are visible in Tiny and Short distance
- Configurable Smooth Lighting (examples) - from 1% - smooth lighting without shadows - to 100% - smooth lighting with full shadows
- Performance: VSync Synchronizes framerate with monitor refresh rate to remove split frames and smooth gameplay
- Smart Advanced OpenGL - more efficient, less artifacts - Fast - faster, some artifacts still visible - Fancy - slower, avoids visual artifacts
- Fog control - Fog: Fancy, Fast, OFF - Fog start: Near, Far
- Mipmaps (examples) - Visual effect which makes distant objects look better by smoothing the texture details - Mipmap level - OFF, 1, 2, 3, Max - Mipmap type - Nearest, Linear
- Anisotropic Filtering (examples) - Restores details in mipmapped textures - AF level - OFF, 2, 4, 8, 16 (depends on hardware support)
- Antialiasing (examples) - Smooths jagged lines and sharp color transitions - AA level - OFF, 2, 4, 6, 8, 12, 16 (depends on hardware support)
- Better Grass Fixes grass blocks side texture to match surrounding grass terrain
- Clear Water (examples) Clear, transparent water with good visibility underwater
- Custom Sky (info) Use custom textures for the day and night skies. Multiple layers, blending options, time configuration.
- Random Mobs Use random mob textures if available in the texture pack
- Connected Textures (examples) Connects textures for glass, glass panes, sandstone and bookshelf blocks which are next to each other.
- Natural Textures (examples, idea) Removes the gridlike pattern created by repeating blocks of the same type. Uses rotated and flipped variants of the base block texture.
- Faster Math Uses smaller lookup table which fits better in the L1 CPU cache
- FPS control - Smooth FPS - stabilizes FPS by flushing the graphics driver buffers (examples) - Smooth Input - fixes stuck keys, slow input and sound lag by setting correct thread priorities
- Chunk Loading Control - Load Far - loads the world chunks at distance Far, allows fast render distance switching - Preloaded Chunks - defines an area in which no new chunks will be loaded - Chunk Updates per Frame - allows for faster world loading - Dynamic Updates - loads more chunks per frame when the player is standing still
- Configurable Details - Clouds - Default, Fast, Fancy - Cloud Height - from 0% to 100% - Trees - Default, Fast, Fancy - Grass - Default, Fast, Fancy - Water - Default, Fast, Fancy - Rain and Snow - Default, Fast, Fancy - Sky - ON, OFF - Stars - ON, OFF - Sun & Moon - ON, OFF - Depth Fog - ON, OFF - Weather - ON, OFF - Swamp Colors - ON, OFF - Smooth Biomes - ON, OFF - Custom Fonts - ON, OFF - Custom Colors - ON, OFF - Show Capes - ON, OFF (supports HD capes)
- Configurable animations - Water Animated - OFF, Dynamic, ON - Lava Animated - OFF, Dynamic, ON - Fire Animated - OFF, ON - Portal Animated - OFF, ON - Redstone Animated - OFF, ON - Explosion Animated - OFF, ON - Flame Animated - OFF, ON - Smoke Animated - OFF, ON - Void Particles - OFF, ON - Water Particles - OFF, ON - Rain Splash - OFF, ON - Portal Particles - OFF, ON - Dripping Water/Lava - OFF, ON - Terrain Animated - OFF, ON - Items Animated - OFF, ON
- Fast Texturepack Switching Switch the current Texturepack without leaving the world
- Fullscreen Resolution Configurable fullscreen resolution
- Debug - Fast Debug Info - removes lagometer from debug screen - Debug Profiler - removes profiler from debug screen
- Time Control Default, Day Only or Night Only - works in only in Creative mode
- Autosave - Configurable Autosave interval - A fix for the famous Lag Spike of Death
Editions

Even Older Versions
If you have previously used MCPatcher for HD Textures, HD Fonts or Better Grass (important)
1. Temporarily revert back to the Default Texture Pack.
2. Uninstall the HD Textures, HD Fonts, and Better Grass mods from the MCPatcher. These functions are included in OptiFine.
3. Set Graphics to Fancy
4. Install OptiFine and test with the Default Texture Pack to make sure everything is working.
5. Select your previous texture pack and graphics settings
6. Run Minecraft and enjoy
Compatibility with other mods
If you need ModLoader: Install OptiFine AFTER ModLoader.
If you need Forge: Install OptiFine AFTER Forge.
MCPatcher is NOT needed for HD textures, HD fonts and BetterGrass, they are included in OptiFine. Install OptiFine without MCPatcher's HD features for best performance.
If you need DynamicLights (ModLoader edition): Install OptiFine AFTER DynamicLights.
Compatible with: ModLoader, Forge, SinglePlayerCommands, TooManyItems, PlasticCraft, CJB's Modpack, Zan's Minimap, Rei's Minimap, DynamicLights, GLSL Shaders 2, LittleBlocks and many other.
Not compatible with: CCTV, The Aether.
Installation
For Minecraft 1.6.2 and newer
- Double-click the downloaded JAR file and the OptiFine installer should start
- Click "Install" and OptiFine will be installed in the official Minecraft launcher with its own profile "OptiFine"
- Start the official launcher and play
B. Easy
- Use the official launcher to download and start once Minecraft 1.6.2.
- Double-click the downloaded JAR file and the OptiFine installer should start
- Click "Extract" and save the OptiFine MOD file
- Start Magic Launcher
- Click "Setup"
- Select Environment "1.6.2"
- Click "Add" -> select the OptiFine MOD file
- Click "OK"
- Login and play
C. Complex
- Use the official launcher to download and start once Minecraft 1.6.2.
- Go to the minecraft base folder (the official launchers shows it when you click "Edit Profile" as "Game Directory")
- Go in subfolder "Versions"
- Rename the folder "1.6.2" to "1.6.2_OptiFine"
- Go in the subfolder "1.6.2_OptiFine"
- Rename "1.6.2.jar" to "1.6.2_OptiFine.jar"
- Rename "1.6.2.json" to "1.6.2_OptiFine.json"
- Open the file "1.6.2_OptiFine.json" with a text editor and replace "id":"1.6.2" with "id":"1.6.2_OptiFine" and save the file
- Copy the files from the OptiFine ZIP file in "1.6.2_OptiFine.jar" as usual (you can use the 1.5.2 instructions for this) and remove the META-INF folder from "1.6.2_OptiFine.jar".
- Start the official launcher
- Click "Edit Profile" - Select "Use version:" -> "release 1.6.2_OptiFine"
- Click "Save Profile"
- Click "Play" or "Login" to start the game. If only "Play Offline" is available, then log out and log in again to fix it.
Installation for Minecraft 1.6.2 with Forge
A. Easy
- Use the official launcher to download and start once Minecraft 1.6.2.
- Use the Forge installer to install Forge
- Use the official launcher to start once Minecraft with the Forge profile.
- Start Magic Launcher
- Click "Setup"
- Select Environment "Forge9.10.X.Y"
- Click "Add" -> select the OptiFine ZIP file
- Click "Advanced"
- In the field "Parameters" add "-Dfml.ignorePatchDiscrepancies=true"
- Click "OK"
- Login and play
B. Simple (for OptiFine 1.6.2_C4 and newer)
- Put the OptiFine JAR file in the Forge "mods" folder
- Start Minecraft and Forge should automatically load OptiFine
B. Complex (not working for Forge #780 and #781)
- Use the official launcher to download and start once Minecraft 1.6.2.
- Use the Forge installer to install Forge
- Go to the minecraft base folder (the official launchers shows it when you click "Edit Profile" as "Game Directory")
- Go in subfolder "Versions"
- Go in subfolder "Forge9.10.X.Y"
- Copy the files from the OptiFine ZIP file to "Forge9.10.X.Y.jar" as usual (you can use the 1.5.2 instructions for this) and remove the META-INF folder from "Forge9.10.X.Y.jar".
- Start the official launcher
- Select profile "Forge"
- Click "Edit Profile"
- Select the checkbox "JVM Arguments" and in the field next to it add "-Dfml.ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true"
- Click "Save Profile"
- Click "Play" or "Login" to start the game. If only "Play Offline" is available, then log out and log in again to fix it.
For Minecraft up to 1.5.2
A. Easy Installation
1. Download and start the Magic Launcher
2. Click Setup, click Add, select the downloaded zip file
3. Click OK, login and play Minecraft
B. Manual Installation
Windows/Linux Instructions:
1. Locate your minecraft.jar file. On Windows, it's in %APPDATA%/.minecraft/bin
2. Create a backup of minecraft.jar
3. Open minecraft.jar in an archive editor (WinRar/7-Zip/etc)
4. Delete the META-INF folder.
5. Copy (drag and drop) the .class files from the downloaded zip file into the jar file, replacing previous files.
6. Run Minecraft and test!
Mac Instructions:
1. Locate your minecraft.jar file. On Mac, it's in /Library/Application Support/minecraft/bin
2. Create a backup of minecraft.jar
3. Rename minecraft.jar to minecraft.zip and double-click it to extract the contents
4. Rename the resulting folder to minecraft.jar and open it
5. Copy the .class files from the downloaded zip into the minecraft.jar folder, replacing previous files
6. Run Minecraft and test!
Please test and report back, include CPU, GPU and FPS before/after. Feedback is always welcome.
Copyright
1
For example for where I am at in lighting, here's an example of global lighting from various angles on the terrain:
All of it is fully configurable, and I can have as many lights as I desire. (NO OpenGL cap of 10 / 9!). I will be adding attenuation to light sources to allow the lights to fade away, like a normal lamp. This should be my main porting goal.
2
I would like everyone to know that this is NOT DEAD. I am currently working on my own game engine to familiarize myself with GL and shaders.
17
2
No problem. I like challenges, and this seemed like a good one.
I'll let you know when they're available.
1
You are, in fact, seeing what you are supposed to see. "A" stands for ambient, which I was testing. If you go back to Jenkins, you'll see 2 more tests, one for green and red. Please test all three near blocks which have their own GL effects, (such as floating balls of particles, etc), as well as non-normal square blocks.
Entities aren't affected because they're on a different OpenGL "pipeline", I believe, though terminology may be off.
Also, for smaller tests you don't have to post the results here, feel free to simply PM me your findings, but I don't object to you posting here. Use your own discretion. :3
1
UPDATE:
I've encountered a bug where enabling GL_LIGHTING kills grass and leaves color. To investigate, I tried to disable GL_TEXTURES_2D and see if there's an extra render step in grass and leaves. Turns out there was, here's side to side of what with and without lighting does to the blocks:
Without GL_LIGHTING enabled:
With GL_LIGHTING enabled:
I believe this is caused by an extra rendering step done by the engine on grass and leaf blocks, but I'm not quite sure of the similarities between the two in terms of code.
After digging a bit more, I found out that the problem was that it was rendering it with no color overlay, and would just point to the bland greyscale textures. I've replaced one of them, which seems to have fixed it:
This is going to be a temporary fix until I can figure out how to force the textures to choose a correct lightmap value.
1
The actual OpenGL code used to render the light is only 24 lines of code long; it's not too bad. The main reason why it's not already in the game is because in the game's early state, the lighting system was written BY HAND, and has predominantly stayed that way, with the devs choosing not to use a lot of OpenGL's lighting. (In fact, GL_LIGHTING is DISABLED in Minecraft's code).
2
If anyone still follows this topic, (and I suspect a few do), I've started Colored Lights projects which hopes to implement all of the ideas said, from light going through colored glass to produce colored light, to simple colored light. Check out the WIP here.
1
If anyone is interested in a similar project, (adding colored lights to minecraft), I've decided to continue this mod, (albeit completely re-written). The WIP post can be found here.
1
It's nothing really screenshot worthy; I'll post some when it works properly.