VSDK is now being rebranded to GSDK due to transfer of project from studio profile to main developer profile.
GSDK is currently being developed by a solo developer. I appreciate your patience and understanding as progress may take some time.
New! Visit documentation (extremely unfinished): https://violent-studio.github.io/vsdk
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;
}
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();
}
}
![](https://private-user-images.githubusercontent.com/94743980/358948846-b2481e05-1233-40c6-ba35-e24d42274990.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk2NzUwNjgsIm5iZiI6MTczOTY3NDc2OCwicGF0aCI6Ii85NDc0Mzk4MC8zNTg5NDg4NDYtYjI0ODFlMDUtMTIzMy00MGM2LWJhMzUtZTI0ZDQyMjc0OTkwLmdpZj9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE2VDAyNTkyOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTZhNTBiZDc4MzBkOTk3Y2QzMTdlMWU2M2QwN2RjN2Q2M2ZlNmU5MmU1NjVkOWY1ZGViZWNmN2ExMGIyMDk5NjImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Ml4ESAWJHFxtP9J-VRxnKq8MN6LxSuG1TnpSpxQpRTc)