Welcome on MasterOf13FPS! MasterOf13FPS

Register today or sign up if you are already a member and never miss any cool content again :)

ShaderESP

Ersteinmal sei gesagt, dass dieses Tutorial in kurzer Zeit entstand und daher Fehler möglich sind.

Da das Tutorial von Cyberbrick nichtmehr aktuell ist, gebe ich dir hier einfach mal eine kurze anleitung.

Du erstellst dir ersteinmal eine ShaderUtil.
Den Shader loaded mal so:

Code:
int vertexType = glCreateShader(GL_VERTEX_SHADER);
int fragmentType = glCreateShader(GL_FRAGMENT_SHADER);

glShaderSource(vertexType, FileUtil.getShaderCode(new InputStreamReader(getClass().getResourceAsStream("fragment/vertex.vert"))));
glShaderSource(fragmentType, FileUtil.getShaderCode(new InputStreamReader(getClass().getResourceAsStream("fragment/" + fragmentShader))));

glCompileShader(vertexType);
glCompileShader(fragmentType);

glAttachShader(program, vertexType);
glAttachShader(program, fragmentType);

glLinkProgram(program);

in deiner ESP Class erstellst du dir anschließend einen Framebuffer, den du jedoch noch nicht initialized.
In meiner RenderMethod initialized du diesen direkt am Anfang mit dieser Methode:


Code:
public static Framebuffer setupFB(Framebuffer frameBuffer) {
if (frameBuffer == null)
return new Framebuffer(mc.displayWidth, mc.displayHeight, true);
if (frameBuffer.framebufferWidth != mc.displayWidth || frameBuffer.framebufferHeight != mc.displayHeight) {
frameBuffer.deleteFramebuffer();
frameBuffer = new Framebuffer(mc.displayWidth, mc.displayHeight, true);
}
return frameBuffer;
}

Diesen Framebuffer bindest du dir.
Daraufhin rufst du folgende Methode auf:

Code:
mc.entityRenderer.setupCameraTransform(mc.timer.renderPartialTicks, 0);

anschließend renderst du deine Entitys.
Daraufhin rufst du folgende methode auf:

Code:
mc.entityRenderer.setupOverlayRendering();

dann unbindest den Framebuffer wieder.
Nun bindest du den Framebuffer von Minecraft und beginnst mit dem Rendering deines OutlineShaders.
Code:
(glUseProgram(bind ? program : 0))

Nun setzt du die Uniforms für deinen OutlineShader.

anschließend musst du deinen Framebuffer Rendern:

Code:
ScaledResolution sr = new ScaledResolution(mc);
glBindTexture(GL_TEXTURE_2D, frameBuffer.framebufferTexture);
glBegin(GL_QUADS);
glTexCoord2d(0, 1);
glVertex2d(0, 0);
glTexCoord2d(0, 0);
glVertex2d(0, sr.getScaledHeight());
glTexCoord2d(1, 0);
glVertex2d(sr.getScaledWidth(), sr.getScaledHeight());
glTexCoord2d(1, 1);
glVertex2d(sr.getScaledWidth(), 0);
glEnd();

nun werden noch diese methoden aufgerufen:


Code:
RenderHelper.disableStandardItemLighting();
mc.entityRenderer.disableLightmap();

Nun kannst du deinen Shader unbinden

-----------------

Ich hoffe, dass ich nichts vergessen habe.
➥ Doch, die Code-Tags ... (by FantaCoke)

20.12.2018 - by FantaCoke
» Code-Tags hinzugefügt
» Beitrag korrekt formatiert
Ok ich habe soeben ausprobiert das ShaderUtil zu erstellen, 1.Kann ich dasFileUtil nicht importieren und 2.Könntest du nochmal alle weiteren nutzvollen Imports für das ShaderUtil geben?
 
Ok ich habe soeben ausprobiert das ShaderUtil zu erstellen, 1.Kann ich dasFileUtil nicht importieren und 2.Könntest du nochmal alle weiteren nutzvollen Imports für das ShaderUtil geben?

Mit der Methode wird nur den code des Shaders aus der File als String wiedergegeben, das sollte kein Problem sein.


Code:
import static org.lwjgl.opengl.GL20.*;
import net.minecraft.client.shader.Framebuffer;

sind die wichtigsten

23.12.2018 - by FantaCoke
» Code-Tags hinzugefügt
 
Last edited by a moderator:
jz haben alle skids die nichtmal 0% Ahnung von opengl und den lwjgl bindings haben einen schlechten shader esp code. Toll
 
shape1
shape2
shape3
shape4
shape5
shape6
Back
Top