Ferrari F 138 Template

genesis, can you pass me 3d model f138, please..? i try to convert to f1 2012 and rfactor
Converting to Codemasters' games...
34510673.jpg
 
I didn't tell you not to try it, I just warned you - many great modders, famous and well-known in these lands here at RD, have given their best snd not succeded... So whatever it takes to make it work, it's going to be difficult and a matter of luck as well - to a certain extent.
 
I have a friend who is a programmer, a great programmer who can help me. I would try to f12012, and rfactor. I think it will be easier for rfactor. I'll try anyway, if Genesis can pass the 3d model
Please try,at least it worth it.If you can succeed it will be a glorious event.But i think in order to import models you need to have the exact same program what codemasters used to import 3 models, but i don't know.I'm not an expert in this.I haven't even tried creating 3d models myself.
 
this is the code from pssg file

bool extractor::processPSSGDATABASE(const binary_stream& bs, uint32 position)
{
using namespace std;
if(debug) dfile << endl;
if(debug) dfile << "--------------" << endl;
if(debug) dfile << " PSSGDATABASE " << endl;
if(debug) dfile << "--------------" << endl;
if(debug) dfile << "offset = " << position << endl;

// set stream position
binary_stream stream(bs);
stream.seek(position);

// create node
boost::shared_ptr<TREENODE> node(new PSSGDATABASE);
typedef map<uint32, boost::shared_ptr<TREENODE>>::value_type value_type;
tree.insert(value_type(position, node));

// set parent
uint32 parent = 0;
map<uint32, uint32>::iterator iter = parent_list.find(position);
if(iter != parent_list.end()) parent = iter->second;
if(debug) dfile << "parent = " << parent << endl;
node->parent = parent;

// read chunk properties
PSSGDATABASE* info = static_cast<PSSGDATABASE*>(node.get());
info->chunktype = stream.BE_read_uint32(); if(stream.fail()) return error("Read failed.");
info->chunksize = stream.BE_read_uint32(); if(stream.fail()) return error("Read failed.");
info->propbytes = stream.BE_read_uint32(); if(stream.fail()) return error("Read failed.");
if(debug) dfile << "chunktype = " << info->chunktype << endl;
if(debug) dfile << "chunksize = " << info->chunksize << endl;
if(debug) dfile << "propbytes = " << info->propbytes << endl;

// validate
if(info->propbytes > 1000) return error("Unexpected number of property table bytes.");
if(info->propbytes == 0) return error("Property table expected.");

// read properties
uint32 bytes_read = 0;
while(bytes_read < info->propbytes)
{
// read index
uint32 type = stream.BE_read_uint32();
if(stream.fail()) return error("Read failed.");
bytes_read += 4;

// data bytes
uint32 size = stream.BE_read_uint32();
if(stream.fail()) return error("Read failed.");
bytes_read += 4;
bytes_read += size;

// find index
typedef map<uint32, PSSGATTRIBUTE>::iterator iterator;
iterator iter = attrlist.find(type);
if(iter == attrlist.end()) {
stringstream ss;
ss << "Failed to find property for index " << type << "." << ends;
return error(ss.str().c_str());
}

// read attributes
const string& parameter = iter->second.parameter;
const string& attribute = iter->second.attribute;
if(parameter == "PSSGDATABASE" && attribute == "creator") {
if(!readString(stream, info->creator)) return false;
if(debug) dfile << "info->creator = " << info->creator << endl;
}
else if(parameter == "PSSGDATABASE" && attribute == "creationMachine") {
if(!readString(stream, info->creationMachine)) return false;
if(debug) dfile << "creationMachine = " << info->creationMachine << endl;
}
else if(parameter == "PSSGDATABASE" && attribute == "creationDate") {
if(!readString(stream, info->creationDate)) return false;
if(debug) dfile << "creationDate = " << info->creationDate << endl;
}
else if(parameter == "PSSGDATABASE" && attribute == "scale") {
if(!readVector3(stream, &info->scale[0])) return false;
if(debug) dfile << "scale = " << "<" << info->scale[0] << "," << info->scale[1] << "," << info->scale[2] << ">" << endl;
}
else if(parameter == "PSSGDATABASE" && attribute == "up") {
if(!readVector3(stream, &info->up[0])) return false;
if(debug) dfile << "up = " << "<" << info->up[0] << "," << info->up[1] << "," << info->up[2] << ">" << endl;
}
else {
stringstream ss;
ss << "Unknown block property " << parameter << ":" << attribute << "." << ends;
return error(ss.str().c_str());
}
}

// add child chunks to stack
if(info->chunksize == info->propbytes + 4) return true;
return processChildren(stream, node, position, info->chunksize - bytes_read - 4);
}
 
this is the code from pssg file

bool extractor::processPSSGDATABASE(const binary_stream& bs, uint32 position)
{
using namespace std;
if(debug) dfile << endl;
if(debug) dfile << "--------------" << endl;
if(debug) dfile << " PSSGDATABASE " << endl;
if(debug) dfile << "--------------" << endl;
if(debug) dfile << "offset = " << position << endl;

// set stream position
binary_stream stream(bs);
stream.seek(position);

// create node
boost::shared_ptr<TREENODE> node(new PSSGDATABASE);
typedef map<uint32, boost::shared_ptr<TREENODE>>::value_type value_type;
tree.insert(value_type(position, node));

// set parent
uint32 parent = 0;
map<uint32, uint32>::iterator iter = parent_list.find(position);
if(iter != parent_list.end()) parent = iter->second;
if(debug) dfile << "parent = " << parent << endl;
node->parent = parent;

// read chunk properties
PSSGDATABASE* info = static_cast<PSSGDATABASE*>(node.get());
info->chunktype = stream.BE_read_uint32(); if(stream.fail()) return error("Read failed.");
info->chunksize = stream.BE_read_uint32(); if(stream.fail()) return error("Read failed.");
info->propbytes = stream.BE_read_uint32(); if(stream.fail()) return error("Read failed.");
if(debug) dfile << "chunktype = " << info->chunktype << endl;
if(debug) dfile << "chunksize = " << info->chunksize << endl;
if(debug) dfile << "propbytes = " << info->propbytes << endl;

// validate
if(info->propbytes > 1000) return error("Unexpected number of property table bytes.");
if(info->propbytes == 0) return error("Property table expected.");

// read properties
uint32 bytes_read = 0;
while(bytes_read < info->propbytes)
{
// read index
uint32 type = stream.BE_read_uint32();
if(stream.fail()) return error("Read failed.");
bytes_read += 4;

// data bytes
uint32 size = stream.BE_read_uint32();
if(stream.fail()) return error("Read failed.");
bytes_read += 4;
bytes_read += size;

// find index
typedef map<uint32, PSSGATTRIBUTE>::iterator iterator;
iterator iter = attrlist.find(type);
if(iter == attrlist.end()) {
stringstream ss;
ss << "Failed to find property for index " << type << "." << ends;
return error(ss.str().c_str());
}

// read attributes
const string& parameter = iter->second.parameter;
const string& attribute = iter->second.attribute;
if(parameter == "PSSGDATABASE" && attribute == "creator") {
if(!readString(stream, info->creator)) return false;
if(debug) dfile << "info->creator = " << info->creator << endl;
}
else if(parameter == "PSSGDATABASE" && attribute == "creationMachine") {
if(!readString(stream, info->creationMachine)) return false;
if(debug) dfile << "creationMachine = " << info->creationMachine << endl;
}
else if(parameter == "PSSGDATABASE" && attribute == "creationDate") {
if(!readString(stream, info->creationDate)) return false;
if(debug) dfile << "creationDate = " << info->creationDate << endl;
}
else if(parameter == "PSSGDATABASE" && attribute == "scale") {
if(!readVector3(stream, &info->scale[0])) return false;
if(debug) dfile << "scale = " << "<" << info->scale[0] << "," << info->scale[1] << "," << info->scale[2] << ">" << endl;
}
else if(parameter == "PSSGDATABASE" && attribute == "up") {
if(!readVector3(stream, &info->up[0])) return false;
if(debug) dfile << "up = " << "<" << info->up[0] << "," << info->up[1] << "," << info->up[2] << ">" << endl;
}
else {
stringstream ss;
ss << "Unknown block property " << parameter << ":" << attribute << "." << ends;
return error(ss.str().c_str());
}
}

// add child chunks to stack
if(info->chunksize == info->propbytes + 4) return true;
return processChildren(stream, node, position, info->chunksize - bytes_read - 4);
}
Ehh?What are these lines are for?
 
MP28

mp283_zps96826d70.png


mp282_zps2e693fae.png


mp281_zps5603e489.png


CATERHAM - Renault

caterham2_zps0e400cd5.png


caterham_zps3fe3675c.png


caterham3_zps173b915b.png


Marrusia, Williams and STR to come.

please let us finish the models, we will then upload to mediafire and you can use/edit as you wish....the chances of importing these models back into CM is slim to none...and slim left town!,,,,,,,but by all means try...the issue is not reading the files its simply an issue with re-packing them.

gen.
 
MP28

mp283_zps96826d70.png


mp282_zps2e693fae.png


mp281_zps5603e489.png


CATERHAM - Renault

caterham2_zps0e400cd5.png


caterham_zps3fe3675c.png


caterham3_zps173b915b.png


Marrusia, Williams and STR to come.

please let us finish the models, we will then upload to mediafire and you can use/edit as you wish....the chances of importing these models back into CM is slim to none...and slim left town!,,,,,,,but by all means try...the issue is not reading the files its simply an issue with re-packing them.

gen.


For Catherham, the green is too dark, need to be lighter, but still a good work
 
if you wait for 3d model for this game, its gonna never happen, he just show us 3d model and skin for Rfactor

If your read my comments you will understand, the cars will be released when they are complete....if you want to write negative stuff then when they are released i will cook you a humble pie........i only asked you to wait, its unpaid free time that is rare for me to have, and in this time i can work on models...the above models have changed since my last thread, as more images from testing show up I get more detailed information about the cars.


erteclas there are plenty of models out there to test you theory, export one of the CM cars with 3dsimed or download any rfactor model....then try and import it back....do not use me as the excuse for waiting!


gen.
 
As to indicate by MP, and seen that you always use my work. Just for the depiction according to your statements.

And what tone wishes is of publish and of left free of use. I want to avoid all disappointment in the member(limb) who shall use your work and thus partially mine.

That any publication even partial of my work, will be followed by a complaint with the moderators.

Why not not used directly your clean(appropriate) skin?
 

Latest News

Do you prefer licensed hardware?

  • Yes for me it is vital

  • Yes, but only if it's a manufacturer I like

  • Yes, but only if the price is right

  • No, a generic wheel is fine

  • No, I would be ok with a replica


Results are only viewable after voting.
Back
Top