I'm not totally sure to understand the question, but adding particle and mobs id would be a good idea if somebody want to add a more specific shading. Reworking the gbuffer programs separation could be a good idea : separate clouds and particles, add a new program for everything that requires special shading but no transparencies (vegetation, waving stuff etc...) as it would remove some costly parts of code on slow gpus, and I don't even know what textured_lit is for. Currently leash is rendered to gbuffer_basic for some reason, moving it to terrain should make it work correctly on all shaderpacks.
Also, could it be possible to change when a program will be used? For example, I do deferred shading in composite, then I render gbuffer_water, textured and programs related to transparencies, then I can continue with composite1 etc...
"textured_lit" is for particles rendered with lightmap, for example EntityLargeExplodeFX created by TNT explosion.
The leash is not textured so it can be rendered only on "basic" (or none).
The terrain rendering is pretty much fixed. There are 4 layers: solid, cutout_mipped, cutout and translucent. It can not be split further without adding new render passes. The blocks could be moved to another layer, but it rarely makes sense as converting solid objects to transparent breaks the light propagation, culling, etc.
Currently following can be split:
- different entities, for example "gbuffers_entity_dragon" or "gbuffers_entity_lightning_bolt"
- particles - they are also entities (EntityFX), so the same naming
- rain and snow can be separated, currently both are "weather"
Reordering of the programs is complex, currently they are hardcoded in EntityRenderer.
This is EXACTLY what I was talking about earlier. This stuff would go great for resource packs... but with shaderpacks it's bad enough when they have lighting/bloom applied to something like glowstone even though it might be a different color than the resource pack is using... any features like that could do with some way to sample that from textures or even set from resource packs directly.
Even with basic post-processing stuff like the vanilla shaders would be great. Apply phosphor to nether portal/enderman particles. Apply blur to enderman. Apply cel-shading shader to enchanting particles. Apply entity outline (from 1.9) to items on the ground to increase their visibility (well, LIKE it... but not through walls). Apply sobel to endermite.
Possibly you could add more events later on. As I've stated already, mobs spawning... but then you could also do underwater and stepping into a nether portal. You could also do staring at an enderman (imagine if the enderman is blurred when you AREN'T looking at it... and then EVERYTHING ELSE besides the enderman is blurred when you look at it). Shaders when you have low health or hunger... or when you're on fire (custom fire overlay instead of the same hardcoded derivation from the fire texture?). Custom shaders for ANY potion effect. Shader (like pencil/desaturate) on everything but entities when you open any sort of GUI (like a focus type thing) rather than a partial black overlay.
And that's JUST with post-processing shaders, it'd be even more useful with GLSL shaders... Reflective items/armor (or anything iron, really)? Acid-trip-deformation enderman? Rendered fire/smoke? Custom death animations (imagine mobs melting from fire/lava, breaking into shards or temporary ragdoll)? Maybe even moving the chest lid up 1/16th of a block so it doesn't intersect with the body?
Related, 1.9 does seem to have the framework for post-process shaders applied to individual entities (it's how the spectral arrow/'glow' effect works). That's probably why the SSS menu was removed, because they don't have any stacking capable yet.
I've messed around with making it work with other shaders (specifically, wobble) but I could only get black/white... because it has no texture by default and I have no idea how to make it render the textures of the entity it applies to.
Not related, something I remembered while writing this (because the screen effects stuff) is blinky, a Quake mod that improves FOV. Using a panini projection, it lowers distortion and allows wider FOV:
Seems like something that could be easy to add and fits in with Optifine's style (well, the getting-rid-of-fog side, not better performance side). I know Minecraft's distortion (specifically things stretching near the edge of the screen) bothers me even at 90 (but lower FOV feels like looking through binoculars). Although a large part of Minecraft's issue I think is that only one dimension of the FOV changes.
The post-processing shaders are applied to the whole rendered frame at once, they can not differentiate between entities and blocks without special support from the entity or block shader.
The terrain is rendered in several layers (solid, cutout, etc). All solid blocks are rendered at once and use one shader, it is not possible to use shaders per block UNLESS new render passes are added. Adding new render passes could allow some separation.
Different shaders per entity or particle type is possible. However some effects are complex and need more than switching one shader.
Using a different shader when looking at an entity (enderman) is possible.
Stacking post processing shaders (hunger, low health, hit by mob, on fire, potion effects) are possible.
Panini projection could probably be added as post-processing shader.
Sp614x, can you please check what happens when the camera goes underwater, it does some kind of zoom that throws a bunch of rendering off, either a could you disable it, or b tell me what it does and how much it does it, it makes the underwater unplayable in my shader.
Non power-of-2 textures break the mipmaps for all other textures.
Vanilla in this case just reduces the mipmap level or disables the mipmaps.
OptiFine scales the offending textures to power-of-2 dimensions in order to keep the mipmaps.
You can disable the mipmaps to stop the rescaling.
When most of the textures are higher resolution (lets say 64x), OptiFine may upscale smaller textures to 64x in order to enable all 6 levels of mipmaps (64 = 2 ^ 6). It checks what percentage of the textures are to be upscaled and does it only if the atlas texture increase is going to be minimal.
Without this fix (vanilla) the mipmaps does not work correctly for high resolution textures. For example a 256x resource pack could only enable 4 mipmap levels because of some 16x textures and it loses the other possible 4 levels (2 ^ 8 = 256). The effect is identical to running a 16x pack without mipmaps (heavy texture flickering).
The correct solution is to use power-of-2 textures, they scale correctly and do not have problems with mipmaps.
Non power-of-2 textures are generally difficult and problematic in OpenGL. Vanilla and almost all resource packs use power-of-2 textures.
What about supporting multiples of 16 better?
I've been patiently waiting for the game to support 24x properly, so I can start developing my texture pack again.
Even if I had to make it 48x with 2x2 pixels, it would be worth it.
What about supporting multiples of 16 better?
I've been patiently waiting for the game to support 24x properly, so I can start developing my texture pack again.
Even if I had to make it 48x with 2x2 pixels, it would be worth it.
24x is not a multiple of 16.
With 24x only 3 mipmap levels are possible: 2 x 2 x 2 x 3 so mipmaps will have some flicker.
48x allows 4 mipmap levels: 2 x 2 x 2 x 2 x 3 so the 16x textures will be smooth, but all 48x textures will have some flicker.
Panini projection could probably be added as post-processing shader.
I'm not sure.
You'd definitely need to be able to mess with the camera. For one, you'd need to take a panorama (how much would probably would depend on your FOV) to do a cylindrical projection (this might be better than Panini for distortion at the edges, but it might have more distortion overall).
A panini projection would need a panorama camera and then another camera to project that onto (this is all described on the Blinky project via links).
Shader effect, as in a new possibility. Glowing with magic (like a light source).
Rollback Post to RevisionRollBack
"I'm an outsider by choice, but not truly.
It’s the unpleasantness of the system that keeps me out.
I’d rather be in, in a good system. That’s where my discontent comes from:
being forced to choose to stay outside.
My advice: Just keep movin’ straight ahead.
Every now and then you find yourself in a different place."
-George Carlin
I didn't just mean water (although after checking, it does happen) but also other faces in the model itself:
Again, happening on the 'internal' shaders (and a random one) led me to believe that it was an issue Optifine.
...
I found the offending code (it is commented out): http://pastie.org/private/mgrn44nzqmwh6yd81moda
It does a pre-render of the handheld item without draw buffers and "depthFunc(GL_ALWAYS)".
The item looks OK when the pre-render is disabled.
I am not sure why the pre-render is there and what shaders will break when it is removed.
24x is not a multiple of 16.
With 24x only 3 mipmap levels are possible: 2 x 2 x 2 x 3 so mipmaps will have some flicker.
48x allows 4 mipmap levels: 2 x 2 x 2 x 2 x 3 so the 16x textures will be smooth, but all 48x textures will have some flicker.
Wait, so the textures will be loaded correctly, and won't be re-scaled to powers of two?
If so, then that's one of the two things stopping me from making the pack, down.
The FOV is user configurable, changes in water and when the optifine zoom is active. Mods can also dynamically modify it.
Most shader packs do not have a problem with it.
I know FOV is configurable, however it changes when the camera is underwater, and the shadow map does not update properly, in our latest we have light pass through the water and a caustic layer that also uses the shadow map, the change breaks these, and many of the other modifications of shaders are adopting this feature.
Wait, so the textures will be loaded correctly, and won't be re-scaled to powers of two?
If so, then that's one of the two things stopping me from making the pack, down.
Generally use these resolutions 16 32 64 128 256 512 1024 2048 or even 4096 if you are insane.
I know FOV is configurable, however it changes when the camera is underwater, and the shadow map does not update properly, in our latest we have light pass through the water and a caustic layer that also uses the shadow map, the change breaks these, and many of the other modifications of shaders are adopting this feature.
Then you should also have a problem with the zoom or the sprinting FOV change?
Then you should also have a problem with the zoom or the sprinting FOV change?
that is a point as when you sprint it zooms as well but havent noticed the same bug though, so maybe the type of zoom is different between underwater and sprinting but all I know is that its a problem when underwater as I have implamented the same thing in my super shaders and the same bug is happening when underwater. if you like we can send you a beta version of the shader to so you can see it for your self if it will help any.
I want Optifine HDU D5 for my Forge launcher profile, but Optifine says it wants to make a new launcher profile. I don't want that tho. I need it on Forge. Please help.
that is a point as when you sprint it zooms as well but havent noticed the same bug though, so maybe the type of zoom is different between underwater and sprinting but all I know is that its a problem when underwater as I have implamented the same thing in my super shaders and the same bug is happening when underwater. if you like we can send you a beta version of the shader to so you can see it for your self if it will help any.
The FOV is set at one place and only used to setup the camera.
There is no difference between underwater, sprint, fly, zoom, bow pulling, death, etc. FOV modifications.
"textured_lit" is for particles rendered with lightmap, for example EntityLargeExplodeFX created by TNT explosion.
The leash is not textured so it can be rendered only on "basic" (or none).
The terrain rendering is pretty much fixed. There are 4 layers: solid, cutout_mipped, cutout and translucent. It can not be split further without adding new render passes. The blocks could be moved to another layer, but it rarely makes sense as converting solid objects to transparent breaks the light propagation, culling, etc.
There is already a "clouds" program, here is the full list: http://pastie.org/private/at8uhdw4a5af5ywmmnpfcq
Currently following can be split:
- different entities, for example "gbuffers_entity_dragon" or "gbuffers_entity_lightning_bolt"
- particles - they are also entities (EntityFX), so the same naming
- rain and snow can be separated, currently both are "weather"
Reordering of the programs is complex, currently they are hardcoded in EntityRenderer.
The post-processing shaders are applied to the whole rendered frame at once, they can not differentiate between entities and blocks without special support from the entity or block shader.
The terrain is rendered in several layers (solid, cutout, etc). All solid blocks are rendered at once and use one shader, it is not possible to use shaders per block UNLESS new render passes are added. Adding new render passes could allow some separation.
Different shaders per entity or particle type is possible. However some effects are complex and need more than switching one shader.
Using a different shader when looking at an entity (enderman) is possible.
Stacking post processing shaders (hunger, low health, hit by mob, on fire, potion effects) are possible.
Panini projection could probably be added as post-processing shader.
I get this effect only with SEUS, with several other shaders the horses render properly.
This is the code that adds zoom under water: http://pastie.org/private/wbatffrw1wzulfza2kpva
"var4" is the FOV, default is 70.
What about supporting multiples of 16 better?
I've been patiently waiting for the game to support 24x properly, so I can start developing my texture pack again.
Even if I had to make it 48x with 2x2 pixels, it would be worth it.
24x is not a multiple of 16.
With 24x only 3 mipmap levels are possible: 2 x 2 x 2 x 3 so mipmaps will have some flicker.
48x allows 4 mipmap levels: 2 x 2 x 2 x 2 x 3 so the 16x textures will be smooth, but all 48x textures will have some flicker.
Could you combat this when shaders are enabled, to keep all shader support with things in water? or at least give the updated value to the shader?
Heyyy guys why i can't donate to Optifine with CreditCard? And when will it be fixed?
I'm not sure.
You'd definitely need to be able to mess with the camera. For one, you'd need to take a panorama (how much would probably would depend on your FOV) to do a cylindrical projection (this might be better than Panini for distortion at the edges, but it might have more distortion overall).
A panini projection would need a panorama camera and then another camera to project that onto (this is all described on the Blinky project via links).
Shader effect, as in a new possibility. Glowing with magic (like a light source).
"I'm an outsider by choice, but not truly.
It’s the unpleasantness of the system that keeps me out.
I’d rather be in, in a good system. That’s where my discontent comes from:
being forced to choose to stay outside.
My advice: Just keep movin’ straight ahead.
Every now and then you find yourself in a different place."
-George Carlin
The FOV is user configurable, changes in water and when the optifine zoom is active. Mods can also dynamically modify it.
Most shader packs do not have a problem with it.
I found the offending code (it is commented out): http://pastie.org/private/mgrn44nzqmwh6yd81moda
It does a pre-render of the handheld item without draw buffers and "depthFunc(GL_ALWAYS)".
The item looks OK when the pre-render is disabled.
I am not sure why the pre-render is there and what shaders will break when it is removed.
Wait, so the textures will be loaded correctly, and won't be re-scaled to powers of two?
If so, then that's one of the two things stopping me from making the pack, down.
I know FOV is configurable, however it changes when the camera is underwater, and the shadow map does not update properly, in our latest we have light pass through the water and a caustic layer that also uses the shadow map, the change breaks these, and many of the other modifications of shaders are adopting this feature.
Generally use these resolutions 16 32 64 128 256 512 1024 2048 or even 4096 if you are insane.
Then you should also have a problem with the zoom or the sprinting FOV change?
that is a point as when you sprint it zooms as well but havent noticed the same bug though, so maybe the type of zoom is different between underwater and sprinting but all I know is that its a problem when underwater as I have implamented the same thing in my super shaders and the same bug is happening when underwater. if you like we can send you a beta version of the shader to so you can see it for your self if it will help any.
I want Optifine HDU D5 for my Forge launcher profile, but Optifine says it wants to make a new launcher profile. I don't want that tho. I need it on Forge. Please help.
OH MY GOD, IT'S A LLAMA!
The FOV is set at one place and only used to setup the camera.
There is no difference between underwater, sprint, fly, zoom, bow pulling, death, etc. FOV modifications.
Updated Preview OptiFine H0 for 1.8.9: download
- fixed hand held translucent items with shaders (to be tested!)
- added shaders per world dimension
- overworld - folder "shaders"
- nether - folder "shaders/world-1"
- end - folder "shaders/world1"
- custom mod dimensions should also work in folder "shaders/world<id>"
- the dimension shaders are scanned for shader options
- the dimension shaders options may need different names to avoid conflicts with the overworld (fixed const options may be problematic)
- creating an empty dimension folder effectively disables the shaders for this dimension
- compatible with Forge #1663
Hey, I've been having trouble trying to donate. But I always get
ERROR CODE:PE102
[/header]
And it says to contact the seller