[go: up one dir, main page]

Skip to content

xzripper/gsdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

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