-
Posts
397 -
Joined
-
Last visited
Content Type
Blogs
Forums
Store
Gallery
Videos
Posts posted by flachdrache
-
-
Hmmm, i know crazybump, its great for photo sourced textures but it sometimes makes the look of "overinflated" - however you could get the depthmaps from it and extract the models surfaces with it using zbrush or something similar ... basically for what the tesselation thing is good for. ;p
-
Load the diffuseMap into the alphaChannel (A8R8G8B8) of the normalMap and use some such settings :
...// specular=0.4 bumpscale=1.0 gloss=0.8 //shader="abstract::mesh_diffuse_bumpmap.vert","abstract::mesh_diffuse_bumpmap_specular_detail.frag" shader="abstract::mesh_diffuse_bumpmap.vert","abstract::mesh_diffuse_bumpmap_specular.frag" shadowshader="abstract::mesh_shadow.vert",""
If you send me one of your diffuse textures i could figure some workflow for you using TheGimps normalMap plug-in (not the nvidia one).
hth, low
-
-
Whoops,
the mesh.vert need to have "cubecoord" defined of course and its content should look somwhat like this ...
// ... texcoord0=gl_MultiTexCoord0.xy; texcoord1=gl_MultiTexCoord1.xy; //#ifdef LW_CUBEMAP cubecoord = modelvertex.xyz - cameraposition; cubecoord = reflect( cubecoord , normalize(nmat * gl_Normal.xyz) ); //#endif nmat = gl_NormalMatrix * nmat; // ...
-
Hey,
i made a small modification to the early released "river node" ... or the river.frag to be precise.
You most likely want to build roads as usual, carve its river beds with it and replace the road material with the following.
the material file :
color=1,1,1,0.85 texture0="riverwater04_color.dds" // diffuse texture1="riverwater03_nm.dds" // normal texture2="tag::rendercolor" texture3="tag::renderdepth" texture4="river_UnderwaterCube.dds" // diffuse or ambient cubemap shader="abstract::mesh_diffuse_bumpmap.vert","abstract::river.frag" zsort=1 depthmask=0 bumpscale=50 cullface=0
the "river.frag" :
#extension GL_ARB_draw_buffers : enable #define LW_DIFFUSE texture0 // added - colormap #define LW_CUBEMAP_DIFFUSE texture4 // added - cube surface map #define LW_BUMPMAP texture1 #define LE_REFRACTION texture2 #define LE_DEPTHBUFFER texture3 uniform vec3 cameraposition; uniform vec2 buffersize; uniform vec2 camerarange; include "abstract::greyscale.txt" include "abstract::DepthToZPosition.frag" // added #ifdef LW_DIFFUSE uniform sampler2D LW_DIFFUSE; #endif #ifdef LW_CUBEMAP_DIFFUSE uniform samplerCube LW_CUBEMAP_DIFFUSE; #endif // -- #ifdef LW_BUMPMAP uniform sampler2D LW_BUMPMAP; #endif #ifdef LE_REFRACTION uniform sampler2D LE_REFRACTION; uniform sampler2D LE_DEPTHBUFFER; uniform float refractionstrength = 0.01; #endif varying vec3 vertexposition; varying vec3 T,B,N; varying vec2 texcoord0; varying vec2 texcoord1; varying vec3 cubecoord; varying vec4 modelvertex; varying vec4 fragcolor; float fOcclusionShadow = 1.0; uniform sampler2D texture14; uniform float terrainsize; uniform vec3 terrainscale; uniform float bumpscale; uniform float specular; uniform float gloss; //Terrain color map uniform sampler2D texture12; uniform float apptime; void main(void) { vec4 diffuse = fragcolor; vec3 normal; float shininess = 0.0; vec2 texcoord=texcoord0;// only use this because of parallax mapping float selfillumination = 0.0; //mod texcoords for diffuse map - //rivernodes might cant deal with anglemod it seams ... texcoord.y += apptime / 20000.0; vec2 terraincoord; float terrainresolution; #ifdef LW_DIFFUSE // added diffuse *= texture2D(LW_DIFFUSE,texcoord); #endif #ifdef LW_CUBEMAP_DIFFUSE // added diffuse = vec4( pow(diffuse.xyz, 1.0-(textureCube(LW_CUBEMAP_DIFFUSE, cubecoord).xyz)), diffuse.w); #endif normal = N; #ifdef LW_BUMPMAP vec4 bumpcolor = texture2D(LW_BUMPMAP,texcoord); bumpcolor += texture2D(LW_BUMPMAP,vec2(texcoord.x+0.5,texcoord.y+apptime / 20000.0)); bumpcolor /= 2.0; normal = bumpcolor.xyz * 2.0 - 1.0; normal.z /= bumpscale; normal = T * normal.x + B * normal.y + N * normal.z; normal = normalize(normal); #endif #ifdef LE_REFRACTION diffuse.a=0.25; vec4 refractionvector = vec4( gl_FragCoord.x/buffersize.x, gl_FragCoord.y/buffersize.y, gl_FragCoord.z, 1.0 ); float backgrounddepth=texture2D(LE_DEPTHBUFFER,gl_FragCoord.xy/buffersize).x; backgrounddepth=DepthToZPosition(backgrounddepth); float foregrounddepth=DepthToZPosition(gl_FragCoord.z); float rmix = clamp((backgrounddepth-foregrounddepth)/1.0,0,1); vec4 refractionvector2 = refractionvector + refractionstrength * vec4(normal,0.0) * rmix; backgrounddepth=texture2DProj(LE_DEPTHBUFFER,refractionvector2).x; diffuse = diffuse * rmix + vec4(1) * (1.0-rmix); vec4 transparency; if (backgrounddepth>gl_FragCoord.z) { backgrounddepth=DepthToZPosition(backgrounddepth); transparency = texture2DProj(LE_REFRACTION,refractionvector2); if (rmix<1.0) { transparency = transparency * rmix + (1.0-rmix) * texture2DProj(LE_REFRACTION,refractionvector); } diffuse = transparency * diffuse; } else { diffuse = texture2DProj(LE_REFRACTION,refractionvector)*diffuse; } #endif vec3 adjustednormal = normal*0.5+0.5; float adjustedgloss = gloss; //Diffuse gl_FragData[0] = diffuse; gl_FragData[1] = vec4(adjustednormal,diffuse.w); gl_FragData[3] = vec4(0,0,0,diffuse.w); shininess=clamp(shininess,0,1)*0.5; gl_FragData[2]=vec4(shininess,gloss,0.0,diffuse.w); }
note :
texture2="tag::rendercolor"
texture3="tag::renderdepth"
do need to be present and unobstructed too.
e.g.
on surface, model construction :
local world=CurrentWorld() SetWorld(fw.transparency.world) self.rivermesh=CreateMesh(nil) SetWorld(world)
... should all be self-explanatory - hf.
-
If you get the "2003ResKit" for windowsXP - from microsoft.com, youll find a tool called "robocopy.exe".
It is used to mirror/backup folders from HDD to USB ( or other hard devices ) ...
i prefer local backups over internet dropBoxes because one of my ISP managed to leak edited photos i made to the public once ( one showing me slayed to death ) - oh, they where on the server but not on the website ...
Anyways,
if you give your USB drive a fixed drive letter ( in computer administration - data drives ) you can mirror folders and dont loose / get a new name for the drive on next boot ... command line is like :
C:\XPTools\Tools\2003ResKit\RoboCopy.exe "C:\DevLab01\Le23DevDemo\AssetData" "Z:\back_projects\AssetData" /MIR
I suggest to give it a real name and dont let the system call it "1" or the ms media player might synchronize it to death while confusing USB drives with Mp3 players.
suggestions ?
-
At first glance -
.the 2.7 sandbox appears to be more responsive e.g. way faster and some limitations are removed
which makes navMesh tweaking takes less time, if needed at all.
.the generation of the navMesh is a lot faster and the mesh looks cleaner (less, small, sub-nodes)
.i still have issues with finding the global settings ^-^ ... world default is +x +y -z iirc.
the point which iam looking forward the most are :
Agents can now switch dynamically between structures or even employ multiple different structures in their planning. All world structures are interactive and can be blocked or tagged with meta-information during run-time. Revised and optimized navigation mesh pathfinding.
@Pixel Perfect -
sure, i want my cave full of bats running in leadwerks but there is no pressure from my part since it needs to be developed inside EKI anyway.
I would like to have a "JackOfAllTrades" API though ... i might want to have a AntFarm screensaver just for kicks ...
I do have several layouts in terms of behaviors and agend structure but iam still overwhelmed / lost in "Feygusheym".
It will take me some time to "seriously" develop my ideas in the sandbox still.
The import removes some no longer used file references but seam to work just fine with the known issues.
The pre2.7 generated navMesh can be loaded and processed too afaik.
-
However,
So at its heart I suppose its minecraft, if you want a visual referenceif you use indeed cubes i might would try to have pre defined sets of textured cubes and use a position(s) texture to arange the already textured cubes properly.
-
You could write an "alphaRamp" shader which blends the textures based on the vertexcolor alpha value,
which means 25% rockTexture, 50% sandTexture, 75% grass1Texture, 100% grass2Texture - while blending happens in between.
You could do that based on terrain height too, by setting its vertex color in the range of Y using rgb - as above.
Here is how i have done that in the pixelshader of my "ScarletFever" engine ...
float4 pixel = tex2D(IN.mask, IN.baseCoord); float4 color0 = float4(0, 0, 0, 0); if(pixel.r) { float4 skinRock = tex2D(IN.texRock, IN.tCoord) * pixel.r; color0 += skinRock; } if(pixel.g) { float4 skinGrass = tex2D(IN.texGrass, IN.tCoord) * pixel.g; color0 += skinGrass; } if(pixel. { float4 skinSnow = tex2D(IN.texSnow, IN.tCoord) * pixel.b; color0 += skinSnow; } if(pixel.a) { float4 skinDirty = tex2D(IN.texDirty, IN.tCoord) * pixel.a; color0 += skinDirty; } OUT.col = color0;
... i have never done that but messing up the inRGB sampler with a perlin noise filter could add some additional variation.
PS: the early version, in my XNA engine, was heavily based on these tutorials.
hth
-
You most likely dont need to calculate that since Le is all "entity-based" ...
you simply want to set the position / rotation of your bolt / bullet to the position / rotation of the body or set its complete EntityMatrix.
I took "all" the commands i would need to build game-subsystems from the command list and wrote samples for it.
It doesnt help much with integration the game-engine itself but game-mechanics can be extracted from it.
here is some, slightly changed, script metraton posted (dont know how to write that name though)
--stuff which should be part of LE --the best working round function, works also for negative idp (written by Robert Jay Gould) function round(num, idp) return tonumber(string.format("%." .. (idp or 0) .. "f", num)) end BLEND_NONE=0 BLEND_ALPHA=1 --end of stuff which should be part of LE local width=1920 local height=1080 require("Scripts/constants/collision_const") require("Scripts/constants/engine_const") require("Scripts/LinkedList") require("Scripts/filesystem") require("Scripts/math/math") require("scripts/classes/bullet") if fw==nil then --we are not in Editor RegisterAbstractPath("") Graphics(800,600) fw=CreateFramework() scene=LoadScene("abstract::Actors_obstacleDM1.sbx") scene:SetCollisionType(COLLISION_SCENE) TFilter() AFilter() SetHDR(true) SetSSAO(true) SetBloom(true) standalone=1 end --Variables dx=0.0 dy=0.0 camerapitch=0.0 camerayaw=0.0 move=0.0 strafe=0.0 cameraheight=1.9 --ScrennshotBuffers local buffer=CreateBuffer(width,height,BUFFER_COLOR) if buffer==nil then Notify("Failed to create buffer!",1) return end local buffer2=CreateBuffer(width,height,BUFFER_COLOR) if buffer2==nil then Notify("Failed to create buffer!",1) buffer=nil return end --array of "info_playerstart" ... classname --lobby might use different spots. local playerstart = nil playerstart = scene:FindChild("playerstart") --Create a player controller controller=CreateController(1.8, 0.46, 0.25, 45) controller:SetCollisionType(COLLISION_CHARACTER,0) controller:SetMass(10) SweptCollision(controller, 1) if standalone==1 then if playerstart ~= nil then controller:SetPosition( playerstart:GetPosition() ) else controller:SetPosition(Vec3(0,20,0)) end else controller:SetPosition(fw.main.camera.position) end camerapitch=fw.main.camera.rotation.x camerayaw=fw.main.camera.rotation.y+180 controller:Move(Vec3(0,-0.9,0)) local gunscale=0.6 local vwep = LoadMesh("abstract::vwep_hands.gmf") LoadMesh("abstract::vwep_gun.gmf",vwep) vwep:SetParent(fw.main.camera,0) vwep:SetPosition(Vec3(-0.18*gunscale,-0.03*gunscale,0.37*gunscale),0) vwep:SetScale(Vec3(0.04*gunscale,0.04*gunscale,0.04*gunscale)) local gundisplayposition = vwep:GetPosition() sound_gunshot = LoadSound("abstract::gunshot.ogg") source_gunshot = CreateSource(sound_gunshot) source_gunshot:SetVolume(0.5) vwep :SetShadowMode(0,1) local displayposition=Vec3(-0.26/2.0,-0.03,0.19) local muzzleflash = CreatePointLight(3) muzzleflash:SetParent( vwep ) muzzleflash:SetColor(Vec4(1,0.6,0.0,1.0)) muzzleflash:SetPosition( displayposition ) muzzleflash:SetShadowMode(0) HideMouse() MoveMouse(GraphicsWidth()/2,GraphicsHeight()/2) FlushKeys() FlushMouse() local pick local camera = fw.main.camera local remainingtime local starttime=AppTime() local gameduration=2--length of game in minutes local gamemode=0 gunpos = vwep.position:Copy() local smoothedgunswayamplitude= 0.0 local smoothedgunswayspeed = 0.0 local guntime = 0.0 local recoil = 0.0 local lastfiretime=0.0 local smoothrecoil=0.0 local swaydamping=0.0 local smoothswaydamping=0.0 local lightsmoothing =0.0 local gunlight = 0.0 --Flashlight flashlight = {} flashlight.light = CreateSpotLight(8) flashlight.light:Hide() flashlight.sound_switch = LoadSound("abstract::switch.wav") flashlight.state=0 flashlight.light:SetConeAngles(30,35) flashlight.light:SetRotation(Vec3(5,0,0)) flashlight.light:SetShadowmapSize(512) flashlight.light:Paint(LoadMaterial("abstract::flashlight.mat")) function flashlight:SetState( state ) if state~=self.state then self.state=state if state==0 then self.light:Hide() else self.light:Show() end if self.sound_switch~=nil then self.sound_switch:Play() end end end function ShootBullet( position, direction ) -- local speed=100.0 -- local pick = LinePick( position, Vec3(position.x+direction.x * speed) ) end function DrawHUD(contr) SetBlend(BLEND_ALPHA) DrawText("pos: "..round(contr.position.x,3)..","..round(contr.position.y,3)..","..round(contr.position.z,3),1,FontHeight()*5) DrawText("rot: "..round(contr.rotation.x,3)..","..round(contr.rotation.y,3)..","..round(contr.rotation.z,3),1,FontHeight()*6) SetBlend(BLEND_NONE) end --main function while KeyHit(KEY_ESCAPE)==0 do jump=KeyHit(KEY_SPACE)*6.0 if controller:IsAirborne()==1 then jump=0 end local time = AppTime()/3200.0 local frame = time*(179.0-96.0)+96.0 frame=Clamp( frame, 96, 179 ) vwep:Animate(96,1,0,1) --Camera look gx=Round(GraphicsWidth()/2) gy=Round(GraphicsHeight()/2) dx=Curve((MouseX()-gx)/4.0,dx,3.0/AppSpeed()) dy=Curve((MouseY()-gy)/4.0,dy,3.0/AppSpeed()) MoveMouse(gx,gy) camerapitch=camerapitch+dy camerayaw=camerayaw-dx camerapitch=math.min(camerapitch,89) camerapitch=math.max(camerapitch,-89) fw.main.camera:SetRotationf(camerapitch,camerayaw,0,1) movespeed=6 movesmoothing=10 if controller:IsAirborne()==1 then movesmoothing=200 end --Player movement move=Curve( (KeyDown(KEY_W)-KeyDown(KEY_S))*movespeed,move,movesmoothing) strafe=Curve( (KeyDown(KEY_D)-KeyDown(KEY_A))*movespeed,strafe,movesmoothing) --Use objects if KeyHit(KEY_E)==1 then pick=CameraPick(camera,Vec3(GraphicsWidth()/2,GraphicsHeight()/2,2.0),0,0) if pick~=nil then repeat if pick.entity:GetClass()==ENTITY_MODEL then break end pick.entity=pick.entity.parent until pick.entity==nil if pick.entity~=nil then pick.entity:SendMessage("use",controller,0) end end end --crouching if KeyHit(KEY_C)==1 then if controller:IsCrouched()==1 then crouch=0 cameraheight=1.7 else crouch=1 cameraheight=0.85 end end --Update controller --controller:Update(camerayaw,move,strafe,jump,40,10) controller:Update(camerayaw,move,strafe,jump,40,10,crouch) fw:Update() if KeyHit(8)==1 then dofile("GUIindex.lua") end if KeyHit(KEY_F)==1 then flashlight:SetState(1-flashlight.state) end --Position camera camera:SetPositionf(controller.position.x,controller.position.y+cameraheight,controller.position.z,1) time=AppTime() gunfirefrequency=80 gunswayspeed=0.001*20.0 gunoffset = gunpos:Copy() gunswayamplitude = 0.02 if KeyDown(KEY_W)==1 or KeyDown(KEY_D)==1 or KeyDown(KEY_A)==1 or KeyDown(KEY_S)==1 then gunswayamplitude = 0.03 gunswayspeed=0.005*20.0 end smoothedgunswayamplitude = Curve( gunswayamplitude, smoothedgunswayamplitude, 8.0 ) smoothedgunswayspeed = Curve( gunswayspeed, smoothedgunswayspeed,8.0 ) if smoothrecoil<0.001 then guntime = guntime + AppSpeed() * smoothedgunswayspeed * math.max(0.0,1.0 - smoothswaydamping) end gunoffset.z = gunoffset.z - smoothrecoil * 0.05 smoothedgunswayamplitude = smoothedgunswayamplitude * (1.0 - smoothswaydamping) gunoffset.x = gunoffset.x + math.sin( guntime ) * smoothedgunswayamplitude * gunscale gunoffset.y = gunoffset.y + (1.0-math.cos( guntime*2.0 )) * 0.005 * gunscale * math.min(1.0,1.0 - smoothswaydamping) vwep:SetPosition( gunoffset ) recoil = recoil-0.1 swaydamping = math.max( swaydamping - 0.05, 0.0 ) recoil = math.max(recoil,0.0) smoothrecoil=Curve(recoil,smoothrecoil,3.0) smoothswaydamping = Inc( swaydamping ,smoothswaydamping,0.01 ) gunlight = math.max( gunlight- 0.2, 0.0 ) lightsmoothing =gunlight-- Curve(gunlight,lightsmoothing,8.0) muzzleflash:SetColor(Vec4(1.0*lightsmoothing,0.6*lightsmoothing,0.0,1.0)) if lightsmoothing <0.01 then muzzleflash:Hide() end if MouseDown(1)==1 then if AppTime()-lastfiretime>gunfirefrequency then recoil = 1.0 lastfiretime=AppTime()+math.random(0,20) gunswayspeed=0.0 gunlight = 1.0 source_gunshot:Play() source_gunshot:SetPitch(1.0 + (math.random()-0.5)*0.05 ) swaydamping = 1.0 muzzleflash:Show() CreateBullet(vwep:GetPosition(1) , fw.main.camera.mat:K():Scale(300)) end end if MouseHit(2)==1 then phyproj = CreateBodyBox(1,1,1) projectile = CreateCube(phyproj) projectile:SetColor(Vec4(math.random(0,255)/255,math.random(0,255)/255,math.random(0,255)/255,1)) phyproj:SetMass( 1 ) phyproj:SetCollisionType(1,0) local V = TFormVector(Vec3(0, 0, 2), fw.main.camera, nil) V = Vec3(fw.main.camera.position.x + V.x, fw.main.camera.position.y + V.y, fw.main.camera.position.z + V.z) PositionEntity(phyproj, V, 0) RotateEntity(phyproj, EntityRotation(fw.main.camera, 0), 0) phyproj:AddForcef(0, 100, 1500, 0) end UpdateBullets() flashlight.light:SetPosition(fw.main.camera:GetPosition(1)) flashlight.light:SetRotationf( CurveAngle( fw.main.camera.rotation.x, flashlight.light.rotation.x, 3.0/AppSpeed() ), CurveAngle( fw.main.camera.rotation.y, flashlight.light.rotation.y, 3.0/AppSpeed() ) ) flashlight.light:Movef(-0.07,-0.04,0.02) fw:Render() -- screenshot : note the second fw:Render() if KeyDown(KEY_F12)==1 then SetBuffer(buffer) fw:Render() SetBuffer(buffer2) DrawImage(GetColorBuffer(buffer),0,0,buffer:Width(),buffer:Height()) SetBuffer(BackBuffer()) SaveBuffer(buffer2,"screenshot.png") end DrawHUD(controller) Flip(0) end buffer=nil buffer2=nil controller:Free() vwep:Free() ShowMouse()
hth
-
File Name: devmex_Le231_ShaderSet01_detail
File Submitter: flachdrache
File Submitted: 26 Aug 2011
File Category: Shaders
devmex_Le231_ShaderSet01_detail
----------------------------------------------------
Supportive shader/material for my upcoming downloads.
"Additional", detail shaders and normalmaps ...
mostly just defining preprocessor switches really.
-
I somewhat missed the post from the "27 July 2011" - since my legal stuff should be sorted i might join too. I got many low price assets with in good shape / quality but some are not complete yet.
-
and i thought we are all just bananas floating down the river ....
-
Hmmm, i played Doom3 with all shadows even the own, player shadow, enabled and it somewhat got boring having to switch the flashlight because my own shadow made me not see things. On the other hand deadSpace "doesnt" use shadows and many others aint too.
I would be more in need of "volume" fog and a good bunch of particle emitters
+ the knowledge if/how to get a steady framerate. Besides most released le2 games could be ported to lua as much as my little mini-game could be ported from lua to c, imho.
Let me think about the possibilities but basically i would.
-
File Name: DirtyRottenSet_u3dSource.zip
File Submitter: flachdrache
File Submitted: 25 Jul 2011
File Category: Models
Triangles: some
LOD Versions: No
The source files of my "Garbage - DirtyRottenSet" in u3d format for Ultimate Unwrap 3DPro.
-
imho the style would be quit nice for a HUD too and i might snatch the idea.
Number 47 uses such hud which makes it look just funktional inGame - these kinds do suffer quit easy from over doing things however.
-
"Unfortunately" fraps is kind of a must have in terms of full screen / HD recording.
-
Now that i actually dealing with "constructing" a menu i realised that all kinds of glsl shaders are "not" reachable with in 3rd party solutions ... if you just use leadwerks build in commands it would be xtreemly nice to share your work here.
anyways, keep it up.
-
As of actual using .Net derivations, in a no "one hit wonder" environment - there where several issues i had in the past with it.
Namely it was always a constant w.i.p. - especially with the XNA framework including abandoned support for so called "project updaters".
Within leadwerks it had been the license question issue which made me not using it -
if its provided "As-Is" its more close to "public-domain" but non the less these restrictions made it somewhat float in mid air, beside (in the mean time) its about two years ago i wrote something good with it. If its included in the sdk, within the same eula - i might rather use the provided engine commands in a .Net, for extended game-tools-pipeline programing than a strange 3rd party openGL solution.
-
Hi,
i had bad issues getting good quality / compression on my promo videos in the past ... since these are sorted now, i feel like sharing my conclusion.
archive size ~80MB : VideoSampleHD.7z
content : 10 seconds of deadSpace as uncompressed, .mp4, .flv and .ogv.
It goes something like this
// sample of video compression 4 webpromo // -- Sample Player : vlc media player "Goldeneye" // workflow on webPromo and shorts // -- 1. Fraps .avi half or fullsize (hence the HD init). 2. videora`s X360ConverterHD to .mp4. 3. IVC to .flv (44100 @256bit on 2270 bitrate, using mancoder) // final compression for distrbution // -- 4. ogv from .mp4 using ffmpeg2theora-0.25 (rightClick & open with)
note : i seam to not get stereo to work in my flash sample Player ... hints on that issue are welcome !
hth, have fun
-
Exactly - the pipeline worked out just like it should be.
I wouldn't say programmer friendly but doable with little experience in blender.
The mode itself has some issues which i need to fix still but the pos and orientation is finally there.
The script is just like the monsterTruck but with 4x steering wheels.
I already had imaginations of all kinds of horror scenarios for work arounds really ... good that no 6k model programm is needed too.
I think grouping isnt needed at all just the models relation to each-other need to be obtained.
-
Well, i dont consider advertising being a wish list either but since there is no real sample for it i guess the script just breaks at one point. I was just too tired to go on / clean up.
Edit:
solved ... one actually just need to update all tires in the array.
Clean and tweak vehicle model in uu3d to obj to blender-2.56, for positioning tires etc. relative to vehicle body (group origin to geometry).
-
OK - somewhat solved ... no 8 wheels though - i only get 4 visible wheels to spin atm.
-
? Thats the first time i read about a position of a subMesh could get lost - i wouldnt mind to set up a pivot rig ... if it works. So, there are still 6 to 9 other ways to do it differently ... good.
PS: here is the 8 wheeler - just for reference.
Jeep and Truck Models where found on the interweb w/o attached license e.g. for private use only.
If you are a fancy 3dStudioMax owner - i wouldnt mind to get a working stryker_truck 8 wheeler.
Edit :
I looked in my database and the stryker vehicle was downloaded from "gfx-3d-model.blogspot.com" but is no longer featured there. Models w/o license end up in my "non-commercial" folder but this particular model was offered as no-strings-attached download.
Flat plane?
in Game Artwork
Posted
+1