Page 1 of 1

Crude poorly textured model of a ha'tak

Posted: 2003-08-24 06:59pm
by Pu-239
Picture modeled off of
Image

Model
Image

Did this in raw povray/kpovmodeler. Trying to reimplement in blender, but blender lacks good CSG, so it's even harder to do there(as you can see, I heavily use CSG, thus it takes forever to render). Can't find a suitable rough metal texture, and too lazy to code one myself. Brick texture impossible to align on pyramid. The lighting was made horrible to hide the ugliness :P .

Code: Select all

//*PMRawBegin
#include "colors.inc"
#include "metals.inc"
//*PMRawEnd

global_settings {
   adc_bailout 0.0039216
}

camera {
   perspective
   location <5, 5, -5>
   sky <0, 1, 0>
   direction <0, 0, 1>
   right <1.33333, 0, 0>
   up <0, 1, 0>
   look_at <0, 0, 0>
}

light_source {
   <0, 0, 0>, rgb <1, 1, 1> *2
   translate <0, 1.5, 3>
   rotate <0, 0, 0>
}


#declare PyramidTexture = pigment {
	brick rgb <0,0,0>, rgb <0.721569, 0.603922, 0.0117647>
	brick_size <2,1.5,1>
	mortar .1
	//rotate 90
}


#declare Cornercutter = union {
   prism {
      linear_spline
      linear_sweep
      -1, 1,
      4,
      <2.4655, -3.3173>, <0.35, -4.27>, <0.6733, -2.32>, <2.4655, -3.3173>
      scale 1
      rotate <0, 0, 0>
      translate <0, 0, 0>
   }
   
   prism {
      linear_spline
      linear_sweep
      -1, 1,
      4,
      <-2.4655, -3.3>, <-0.35, -4.27>, <-0.6733, -2.32>, <-2.4655, -3.3>
      scale 1
      rotate <0, 0, 0>
      translate <0, 0, 0>
   }
}

#declare ShipCutter = prism {
   linear_spline
   linear_sweep
   -1, 1,
   6,
   <1, 1>, <1, -1>, <0, -1.1718>, <-1, -1>, <-1, 1>, <1, 1>
   scale <0.9, 1, 1>
   rotate <0, 0, 0>
   translate <0, 0, 0>
}

#declare ShipCoreCutter = prism {
   linear_spline
   linear_sweep
   0, 1,
   12,
   <0.2, -0.75>, <0.77, 0.2>, <-0.77, 0.2>, <-0.2, -0.75>, <-0.23, -1.18>, <-0.26, -1.45>, <-0.23, -1.75>, <0, -1.9>, <0.23, -1.75>, <0.26, -1.45>, <0.23, -1.18>, <0.2, -0.75>
   scale 1
   rotate <0, 0, 0>
   translate z*(-0.2)
}

#declare ShipCoreCutterBottom = prism {
   linear_spline
   linear_sweep
   0, -1,
   10,
   <0.1, -0.75>, <-0.1, -0.75>, <-0.2, -1>, <-0.12178, -1.2288>, <-0.18853, -1.4321>, <0, -1.6>, <0.18853, -1.4321>, <0.12178, -1.2288>, <0.2, -1>, <0.1, -0.75>
   scale 1
   rotate <0, 0, 0>
   translate z*(-0.55)
}

#declare InsideCutter = intersection {
   sphere {
      <0, 0, 0>, 0.5
      scale <6, 1.1, 6>
      rotate <0, 0, 0>
      translate <0, 0, 0>
   }
   
   cylinder {
      <0, 1, 0>, <0, -1, 0>, 2.4
      scale 1
      rotate <0, 0, 0>
      translate <0, 0, 0>
   }
}

#declare ShipAroundCoreHollow = difference {
   sphere {
      <0, 0, 0>, 0.5
      scale <6.5, 1.5, 6.5>
      rotate <0, 0, 0>
      translate <0, 0, 0>
   }
   
   object {
      InsideCutter
      scale <1.05, 1.27, 1.05>
      rotate <0, 0, 0>
      translate <0, 0, 0>
   }
}

#declare core = mesh2 {
	vertex_vectors {
		4,
		<1, 1, 1>,
		<-1, 1, -1>, 
		<1, -1, -1>, 
		<-1, -1, 1>
	}
	uv_vectors {
		3,
		<-1.73, 0>,
		<0, 0>,
		<-0.8515, 2.8>
	}
	face_indices {
		4,
		<0, 1, 2>,
		<1, 2, 3>,
		<0, 2, 3>,
		<0, 1, 3>
	}
	uv_indices {
		4,
		<0, 1, 2>,
		<0, 1, 2>,
		<0, 1, 2>,
		<0, 1, 2>,
	}
	
	
	
	inside_vector <0, 0, 1>

	texture	{
		pigment{ 
			PyramidTexture 
			rotate z*45
		}
	}
	
	rotate <45, 55, 90>
	scale <0.7, .9, 0.7>
}

#declare ship = union {
   object {
      core
      scale 1
      rotate <0, 0, 0>
      translate y*0.5
      }
   }
   
   difference {
      object {
         ShipAroundCoreHollow
         scale 1
         rotate <0, 0, 0>
         translate <0, 0, 0>
      }
      
      object {
         ShipCutter
         scale 1
         rotate <0, 0, 0>
         translate z*3
      }
      
      object {
         ShipCutter
         scale 1
         translate z*3
         rotate y*120
      }
      
      object {
         ShipCutter
         scale 1
         translate z*3
         rotate y*(-120)
      }
      
      object {
         ShipCutter
         scale 1
         rotate <0, 0, 0>
         translate z*3
      }
      
      object {
         ShipCoreCutter
         scale 1
         rotate <0, 0, 0>
         translate <0, 0, 0>
      }
      
      object {
         ShipCoreCutter
         scale 1
         rotate y*120
         translate <0, 0, 0>
      }
      
      object {
         ShipCoreCutter
         scale 1
         rotate y*(-120)
         translate <0, 0, 0>
      }
      
      object {
         Cornercutter
         scale 1
         rotate <0, 0, 0>
         translate <0, 0, 0>
      }
      
      object {
         Cornercutter
         scale 1
         rotate y*(-120)
         translate <0, 0, 0>
      }
      
      object {
         Cornercutter
         scale 1
         rotate y*120
         translate <0, 0, 0>
      }
      
      object {
         ShipCoreCutterBottom
         scale 1
         rotate <0, 0, 0>
         translate <0, 0, 0>
      }
      
      object {
         ShipCoreCutterBottom
         scale 1
         rotate y*120
         translate <0, 0, 0>
      }
      
      object {
         ShipCoreCutterBottom
         scale 1
         rotate y*(-120)
         translate <0, 0, 0>
      }
      
      texture {
         //*PMRawBegin
         F_MetalA
         //*PMRawEnd
         
         pigment {
            color rgb <0.690196, 0.690196, 0.690196> 
		}
      }
   
}

object {
   ship
   scale 1
   rotate <0, 0, 0>
   translate <0, 0, 0>
}

Posted: 2003-08-25 05:43pm
by Pu-239
bump

Posted: 2003-08-29 08:39pm
by Pu-239
Slightly better texturing(cheated using bump mapping, shell part's texture made by modelling scratches in Blender, then gimping the rendered image.). Now using area lights. The texture on the pyramid now using UV-mapping to align the bricks. Still lacks detail (painful to do without modeler, and Blender, without CSG to cut holes in things, just doesn't cut it.

Angle 1:
Image

Angle 2:
Image

Posted: 2003-08-29 08:47pm
by Shinova
At least it looks recognizable...kinda. :D


Considering how hard it is to work with POVray and how limited free modellers can be, good work.

Posted: 2003-08-29 10:06pm
by Sea Skimmer
It's looking fairly good. You know I actually think the ship would look better, while being far more sensible, if the structure around the pyramid was all solid. But if you intent on making a replica that's of course not an option.

Posted: 2003-08-30 12:16am
by Pu-239
Would actually be possible to model in blender too, instead of povray if it were solid. The cutouts require CSG or uber-1337 modeling skills, of which the first gets screwed up with anything remotely complex (Has anyone tried k3d? Blender is too oriented toward organic and animation stuff).

[rant]
Raw povray is a pain in the ass- previewing anything takes a while to render on a PII-450, and installing pvm-povray probably won't help much if all you have is a PII-266 windows box and a PII-450-linux box. It would still be less powerful than what some of the people on the board complaining about slow computers have.

Example of bad hardware would be modeling an M1 tank, using an image stucsurfacek to the background as a guide. RIVA TNT2 has poor 2D OpenGL acceleration, so that isn't usable, Blender takes up whole screen, so can't put it in seperate window, and print quality being horrible off of a 10 yr old B&W BJ-230 with the wrong drivers (correct omni drivers too difficult to install on linux, and even then probably poor quality, which is why I haven't sent files upstairs to print using the windows drivers back to down here). Blender project appears unhealty financially, so...
[/rant]

I'm giving up on this model, at least until I explore other modeling alternatives. I'll work on more solid things. Need to add details to the three holes around the pyramid, and thin out the sections. Bump mapping should look deeper and scratches larger, surface less shiny, this part is easy. School is starting, so I don't have time to burn on this stuff though.