1 registered members (AndrewAMD),
1,018
guests, and 6
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
Re: What are you working on?
[Re: Sajeth]
#404022
07/01/12 11:48
07/01/12 11:48
|
Joined: Apr 2008
Posts: 2,488
ratchet
OP
Expert
|
OP
Expert
Joined: Apr 2008
Posts: 2,488
|
Game making is HEAVY time consumming ... I need some solution to make lot of different characters : NPC, ennemies on a same base shape (RPG Maker like style, little big planet etc ...) AS FAST AS POSSIBLE , i mean just changing texture, adding custom items and clothes , so i decided to make a generic base character for any game style using characters i would want to make. I begun some basic texture color, my goal is to make fast customizable characters somewhat like MII characters of Nintendo or Avatars of Microsoft , even if i won't reach same quality 3D coat for 3D painting is really the must (paint lines and width, paint splines , paint with brushes like "make clear", "make darker" etc ... ) And Blender just rocks ! Does anyone know if there is some rim shader for 3DGS ? like this one ? mario galaxy perhaps 3DGS toon shader will do the job well on on some diffuse detailled texture ?
Last edited by ratchet; 07/01/12 13:35.
|
|
|
Re: What are you working on?
[Re: ratchet]
#404067
07/02/12 06:19
07/02/12 06:19
|
Joined: Feb 2010
Posts: 320 TANA/Madagascar
3dgs_snake
Senior Member
|
Senior Member
Joined: Feb 2010
Posts: 320
TANA/Madagascar
|
ackphysX3 - PhysX3.0.2 plugin for 3DGS (A7/A8) Feature completion : 80% Current: - Rigid bodies
- Character controllers
- Joints
- Forces
- Scene queries (rayCast[any/single/multiple], sweep[any/single/multiple], overlap[any/multiple], rigid bodies linear sweep)
Remaining : - Joint customization (setparams)
- Vehicles
- Cloth
- Particles/Fluid
- Documentation/Examples
Planned: ackphysX3 stress test (adapted from physXtest.c sample)
//////////////////////////////////////////////////////
// PhysX stress test
// (c) jcl / oP group 2010
//////////////////////////////////////////////////////
#include <default.c>
#include <ackphysX3.h>
// convert entity to a PhysX actor
function actor(type)
{
set(my,LIGHT|CAST);
if (num_entities < 250) set(my,SHADOW);
// set random size
vec_fill(my.scale_x,0.6+random(0.4));
// activate physics
pX3ent_settype(my,PH_RIGID,type);
pX3ent_setmaterial(my, vector(60, 40, 90), NULL);
//pX3ent_setelasticity(my,90);
// set random initial speed
pX3ent_addvelcentral(my,vector(1-random(2),1-random(2),0));
// remove entity when fallen over the edge of the ground plate
while(1) {
if (my.z < 0) {
ent_remove(me);
return;
}
wait(1);
}
}
function ball()
{
my.material = mat_metal;
vec_set(my.blue,vector(0,random(100),150+random(100)));
actor(PH_SPHERE);
}
function cube()
{
vec_set(my.blue,vector(150+random(100),random(100),0));
actor(PH_BOX);
pX3ent_setfriction(my,0); // ice cube
}
function main()
{
shadow_stencil = 1;
d3d_antialias = 4;
max_entities = 3000;
physX3_open();
level_load(""); // load empty level
vec_set(camera.x,vector(-180,0,30));
// create ground plate
ENTITY* ground = ent_create(CUBE_MDL,vector(0,0,0),NULL);
vec_set(ground.scale_x,vector(20,20,1));
pX3ent_settype(ground,PH_STATIC,PH_BOX);
pX3ent_setfriction(ground,10);
// endlessly create entities
while(1){
ent_create(SPHERE_MDL,vector(random(20),random(20),150),ball);
if (random(100) > 70) ent_create(CUBE_MDL,vector(random(20),random(20),170),cube);
wait(-0.05);
}
}
Scene query test
#include <acknex.h>
#include <default.c>
#include <ackphysX3.h>
// Variables
// Headers
void test_physX3();
// Acknex PhysX3 Character Controller test
void main()
{
test_physX3();
}
// Scenequery test
void test_physX3()
{
video_window(NULL, NULL, 0, "PhysX3 CCT Test");
fps_max = 60;
// Shadow Stencil
shadow_stencil = 4;
d3d_antialias = 1;
// Create level
level_load(NULL);
// Position camera
vec_set(camera->x, vector(-252, 0, 130));
camera->tilt = -20;
// Create ground
ENTITY *ground = ent_create("CUBE.MDL", nullvector, NULL);
vec_set(ground->scale_x, vector(20, 20, 1));
c_setminmax(ground);
// Create entities
ENTITY *block1 = ent_create("CUBE.MDL", vector(50, 0, 50), NULL);
vec_set(block1->scale_x, vector(2, 2, 2));
set(block1, SHADOW | LIGHT);
ENTITY *block2 = ent_create("CUBE.MDL", vector(50, 50, 50), NULL);
vec_set(block2->scale_x, vector(2, 2, 2));
set(block2, SHADOW | LIGHT);
ENTITY *block3 = ent_create("CUBE.MDL", vector(-50, -50, 60), NULL);
vec_set(block3->scale_x, vector(2, 2, 2));
set(block3, SHADOW | LIGHT);
// Create sphere
ENTITY *sphere = ent_create("SPHERE.MDL", vector(0, -50, 50), NULL);
vec_set(sphere->scale_x, vector(5, 5, 5));
c_setminmax(sphere);
set(sphere, SHADOW | TRANSLUCENT);
sphere->alpha = 5;
// Create capsule
ENTITY *capsule = ent_create("CUBE.MDL", vector(50, 50, 50), NULL);
vec_set(capsule->scale_x, vector(5, 5, 5));
c_setminmax(capsule);
set(capsule, SHADOW | TRANSLUCENT);
capsule->alpha = 5;
// Set gravity
pX3_setgravity(vector(0, 0, -9.81));
// Open physX
physX3_open();
// Create actors
pX3ent_settype(ground, PH_STATIC, PH_BOX);
pX3ent_settype(block1, PH_RIGID, PH_CAPSULE);
pX3ent_settype(block2, PH_STATIC, PH_BOX);
pX3ent_settype(block3, PH_RIGID, PH_BOX);
// Spherecheck test
var scaResult = pX3_spherecheckany(sphere->x, sphere->max_x, 0, 0, NULL);
if (scaResult)
{
//printf ("%d", (int)scaResult);
set(you, TRANSLUCENT);
}
// Capsulecheck test
VECTOR start, end;
vec_set(start, capsule->x); vec_sub(start, vector(0, 0, capsule->max_z));
vec_set(end, capsule->x); vec_add(end, vector(0, 0, capsule->max_z));
var ccaResult = pX3_capsulecheckany(start, end, capsule->max_x, 0, 0, NULL);
if (ccaResult)
{
//printf ("%d", (int)ccaResult);
set(you, TRANSLUCENT);
}
#define nbContacts 5
CONTACT scmContacts[nbContacts];
CONTACT ccmContacts[nbContacts];
// SphereCheckMultiple test
var scmResult = pX3_spherecheckmultiple(sphere->x, sphere->max_x, 0, 0, scmContacts, nbContacts);
if (scmResult)
{
//printf("%d", (int)scmResult);
var i = 0;
for (i = 0; i < scmResult; i++)
{
set(scmContacts[i].entity, TRANSLUCENT);
}
}
// CapsuleCheckMultiple test
var ccmResult = pX3_capsulecheckmultiple(start, end, capsule->max_x, 0, 0, ccmContacts, nbContacts);
if (ccmResult)
{
//printf("%d", (int)ccmResult);
var i = 0;
for (i = 0; i < ccmResult; i++)
{
set(ccmContacts[i].entity, TRANSLUCENT);
}
}
// App main loop
while(1)
{
// Sphere check multiple
var i = 0;
for (i = 0; i < scmResult; i++)
{
draw_point3d(scmContacts[i].x, vector(255, 255, 0), 100, 4);
}
// capsule check multiple
var i = 0;
for (i = 0; i < ccmResult; i++)
{
draw_point3d(ccmContacts[i].x, vector(255, 0, 255), 100, 4);
}
wait(1);
}
}
|
|
|
Re: What are you working on?
[Re: HeelX]
#404069
07/02/12 06:52
07/02/12 06:52
|
Joined: Feb 2010
Posts: 320 TANA/Madagascar
3dgs_snake
Senior Member
|
Senior Member
Joined: Feb 2010
Posts: 320
TANA/Madagascar
|
Hi,
I found that with the actual physX plugin it is dificult/impossible to attach multiple joints, so i took it differently and return an internal joint id instead of the joint pointer. It is then possible to remove/add/configure multiple joints (a function can be implemented to return the joint pointer if really needed). Actually, I implemented all joints found on the physX SDK (Fixed (PH_FIXED//added), Spherical(PH_BALL), Revolute(PH_HINGE), Prismatic(PH_SLIDE, PH_PRISMA), Distance(PH_ROPE) and D6(PH_6DJOINT)).
I tried to name functions like those of the actual plugin (added 3 after the X), so, except vehicles (I'm still thinking about a simple way to implement it for GS) it is more or less compatible with the actual plugin.
PS : I'll implement joint configurations before working on vehicles.
Best regards.
|
|
|
Re: What are you working on?
[Re: 3run]
#404137
07/03/12 08:24
07/03/12 08:24
|
Joined: Jun 2009
Posts: 2,210 Bavaria, Germany
Kartoffel
Expert
|
Expert
Joined: Jun 2009
Posts: 2,210
Bavaria, Germany
|
I'm currently working on post processing shaders, especially for HDRR. I just changed the technique of combining the original scene with the bloom image. The result looks much better: Left: Old, too much overexposure at bright areas Middle: Original scene Right: New click for full size EDIT: This screenshot shows the difference much better click for full size
POTATO-MAN saves the day! - Random
|
|
|
|