Skip to content

xzripper/gsdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

java_kbSEhZPUez-min

VSDK is now being rebranded to GSDK due to transfer of project from studio profile to main developer profile.

todo gshader:begin:end:is_begun

GSDK Development Phase: GSDK_V0.0.0.8-ALPHA/DEV_PUBLISH.

GSDK is currently being developed by a solo developer. I appreciate your patience and understanding as progress may take some time.

opera_bFDdi1rxJH New! Visit documentation (extremely unfinished): https://violent-studio.github.io/vsdk

Example 1

import com.raylib.Raylib;

import com.raylib.Jaylib.Vector3;

import static com.raylib.Jaylib.BLACK;

import vsdk.source.utils.WindowManager;
import static vsdk.source.utils.WindowManager.WindowFlags;

import vsdk.source.vectors.Vector2Df;
import vsdk.source.vectors.Vector3Df;

import vsdk.source.vrender.Quad;

import vsdk.source.utils.GShader;

public class Main {
    public static void main(String[] args) {
        WindowFlags flags = WindowManager.initWindow(
            "Window.",
            1000,
            800,
            120,
            WindowManager.FULLSCREEN_MODE,
            Raylib.FLAG_VSYNC_HINT | Raylib.FLAG_MSAA_4X_HINT,
            false
        );

        Raylib.Camera3D cam = new Raylib.Camera3D()
                ._position(new Vector3(1.0f, 0.0f, 0.0f))
                .target(new Vector3(0.0f, 0.0f, 0.0f))
                .up(new Vector3(0.0f, 1.0f, 0.0f))
                .fovy(45.0f)
                .projection(Raylib.CAMERA_PERSPECTIVE);

        GShader rainbow = new GShader(null, "shdr.frag", GShader.FILE, false);

        rainbow.combineFragment(GShader.FILE, "shdr2.frag");

        Raylib.DisableCursor();

        while(!Raylib.WindowShouldClose()) {
            Raylib.UpdateCamera(cam, Raylib.CAMERA_FREE);

            Raylib.BeginDrawing();
            Raylib.ClearBackground(BLACK);
            Raylib.BeginMode3D(cam);

            rainbow.setUniformFloat("time", (float) Raylib.GetTime());

            rainbow.begin();

            for(int z=-10; z < 20; z += 10) {
                Quad.drawQuad(
                    new Vector2Df(10, 10),
                    new Vector3Df(0, 0, z),
                    new Vector3Df(90, (float) Math.cos(Raylib.GetTime() * 0.7) * 90, 0),
                    BLACK,
                    true
                );
            }

            rainbow.end();

            Raylib.EndMode3D();
            Raylib.EndDrawing();
        }

        rainbow.unload();

        Raylib.CloseWindow();
    }
}

shdr.frag

//:put-version

//:put-io
//:put-uni

void main() {
    //:pshdr#grad

    finalColor = color;
}

shdr2.frag

//:version
#version 330

//:io
in vec2 fragTexCoord;
out vec4 finalColor;
//:eio

//:uni
uniform float time;
//:euni

void main() {
    //:shdr#grad
    float speed = 4.0;
    float frequency = 64.0;

    float red = 0.5 + 0.5 * sin(frequency * fragTexCoord.x + speed * time + 0.0);
    float green = 0.5 + 0.5 * sin(frequency * fragTexCoord.x + speed * time + 2.0);
    float blue = 0.5 + 0.5 * sin(frequency * fragTexCoord.x + speed * time + 4.0);

    vec4 color = vec4(red, green, blue, 1.0);
    //:eshdr

    finalColor = color;
}

GSDK Baked 2D Glow Textures.

GSDK Bump Mapping.

import com.raylib.Raylib;

import static com.raylib.Jaylib.Vector3;

import static com.raylib.Jaylib.BLACK;
import static com.raylib.Jaylib.WHITE;

import gsdk.source.grender.BumpMap;

public class Main {
    public static void main(String[] args) {
        Raylib.InitWindow(1000, 800, "Test window.");

        Raylib.SetTargetFPS(60);

        Raylib.Camera3D cam = new Raylib.Camera3D()
                ._position(new Vector3(3.0f, 0.0f, 0.0f))
                .target(new Vector3(0.0f, 0.0f, 0.0f))
                .up(new Vector3(0.0f, 1.0f, 0.0f))
                .fovy(45.0f)
                .projection(Raylib.CAMERA_PERSPECTIVE);

        Raylib.Model cube = Raylib.LoadModelFromMesh(Raylib.GenMeshCube(3.0f, 2.5f, 0.3f));

        BumpMap bumpMap = new BumpMap("RES\\albedo2.png",
                                    "RES\\normal2.png",
                                    new float[] {0.0f, 0.0f, 0.0f},
                                    new float[] {0.0f, 0.0f, 0.0f}, 32.0f, 0.1f, true);

        cube.materials(bumpMap.getBumpMaterial());

        while(!Raylib.WindowShouldClose()) {
            Raylib.UpdateCamera(cam, Raylib.CAMERA_ORBITAL);

            Raylib.BeginDrawing();

            Raylib.ClearBackground(BLACK);
            Raylib.BeginMode3D(cam);

            bumpMap.updLightPos(new float[] {Raylib.GetMouseX(), Raylib.GetMouseY(), 0.0f});
            bumpMap.updViewPos(new float[]{cam.target().x(), cam.target().y(), cam.target().z()});

            Raylib.DrawModel(cube, new Vector3(0.0f, 0.0f, 0.0f), 1.0f, WHITE);

            Raylib.EndMode3D();
            Raylib.EndDrawing();
        }

        Raylib.UnloadModel(cube);


        Raylib.CloseWindow();
    }
}

GSDK Noise Generator.

GSDK Shader Playground.

GSDK IGUI.

GSDK OPC2D.

GSDK 3D Particle Emitter.


Smoke Tunnel


Smoke Torus


Particles


Smoke particles