Does Nintendo use Nurbs to create their game environments ?

Started by
13 comments, last by Tom Sloper 3 years ago

Here's how to do Bezier patches on the CPU, where cpp_dec_float_100 is a high-precision real number:

vertex_3 bezier(const double u, const double v, vector<vector<vector<float> > > &control_points, size_t num_wide, size_t num_tall)
{
	vertex_3 ret;

	cpp_dec_float_100 ret_x;
	cpp_dec_float_100 ret_y;
	cpp_dec_float_100 ret_z;

	cpp_dec_float_100 u_long = u;
	cpp_dec_float_100 v_long = v;

	const size_t Ni = num_wide - 1;
	const size_t Nj = num_tall - 1;

	for (size_t i = 0; i <= Ni; i++)
	{
		for (size_t j = 0; j <= Nj; j++)
		{
			cpp_dec_float_100 binpow_u = binomial(Ni, i) * cached_pow(u_long, cpp_dec_float_100(i)) * cached_pow(cpp_dec_float_100(1 - u_long), cpp_dec_float_100(Ni - i));
			cpp_dec_float_100 binpow_v = binomial(Nj, j) * cached_pow(v_long, cpp_dec_float_100(j)) * cached_pow(cpp_dec_float_100(1 - v_long), cpp_dec_float_100(Nj - j));

			ret_x += binpow_u * binpow_v * control_points[i][j][0];
			ret_y += binpow_u * binpow_v * control_points[i][j][1];
			ret_z += binpow_u * binpow_v * control_points[i][j][2];
		}
	}

	ret.x = mp_to_double(ret_x);
	ret.y = mp_to_double(ret_y);
	ret.z = mp_to_double(ret_z);

	return ret;
}
Advertisement

NurbsGuy said:
You made your own tool, that's impressive considering the maths behind splines are very difficult.

Haha, not really. Bezier patch is only the simple spline with 4 control points used on u and v directions. But i failed to generate a proper ‘bezier triangle’, so ended op collapsing two splines to meet at the same vertex. Not perfect, but it worked with NVs hardware acceleration on GeForce3. : )

taby said:
I was in love with Softimage|3D

Yeah, me too. I only know XSI. Used it at work some time before Autodesk bought it up. It's the most inspiring software i remember. Adopted IK character rig and their ‘one hierarchy for everything’ ideas for my own programming.
Now i read 2014 was the last version. Too bad.

Softimage|3D was my favorite 3D app. It was blazing fast (the UI itself was in OpenGL, thus hardware accelerated), took 10s to startup and had all the modeling tools required (nurbs, though not as precise as Alias, polys…) and its animation tools were the most advanced in the industry until Maya arrived. It was used in the production of countless movies and video games (apparently Nintendo and Sega had their own version of the software, or at least custom plugins for it, te first Resident Evil games were also created with it). I like watching “Behind the scenes” of 90s movies and inevitably you'll spot some SGI workstation running Softimage|3D.

Yes, there is a scene in Lost in Space where the SGI logo pops up, I believe. LOL

NurbsGuy said:
apparently Nintendo and Sega had their own version of the software

When I visited Sega R&D in the late 80s or early 90s, I saw they had what looked like Silicon Graphics workstations.

-- Tom Sloper -- sloperama.com

This topic is closed to new replies.

Advertisement